transactional-update NEWS -- history of user-visible changes.

Copyright (C) 2016-2024 Thorsten Kukuk, Ignaz Forster et al.

Version 4.8.1 (2024-08-30)
* tukit: fix --drop-if-no-change after apply [bsc#1229900]

Version 4.8.0 (2024-08-26)
* Add sd-boot (systemd-boot) support for most commands
* Add support for specifying migration arguments
  [gh#openSUSE/transactional-update#127]
* Support kdump setup on platforms without kdump high/low settings (e.g.
  S/390 or PPC64le [bsc#1229138]
* Preserve current working directory if possible when entering
  transactional-update environment [bsc#1227452]; also adds the current path
  to the Bash prompt
* Fix plugin system to support special characters in commands

Version 4.7.0 (2024-07-04)
* Add plugin mechanism
  It's now possible to hook into API functions with custom plugins; see
  doc/tukit-plugins.md for details.
  [gh#openSUSE/transactional-update#122]
* Fix missing libdir replacement for status command

Version 4.6.8 (2024-05-07)
* tukit: Properly handle overlay syncing failures: If the system would not be
  rebooted and several snapshots accumulated in the meantime, it was
  possible that the previous base snapshot - required for /etc syncing -
  was deleted already. In that case changes in /etc might have been reset.
  [gh#openSUSE/transactional-update#116]
  [gh#kube-hetzner/terraform-hcloud-kube-hetzner#1287]
* soft-reboot: Log requested reboot type
* soft-reboot: Don't force hard reboot on version change only

Version 4.6.7 (2024-04-30)
* Add support for snapper 0.11.0; also significantly decreases cleanup time
  [boo#1223504]

Version 4.6.6 (2024-04-18)
* soft-reboot: Fix inverted logic of soft-reboot detection
* soft-reboot: Remove unused variable
* doc: Document configuration file snippets for tukit.conf

Version 4.6.5 (2024-04-12)
* Rework soft-reboot support introduced in 4.6.0:
  * On transactional systems with systemd 254 the system could hang with with
    a soft-reboot, as /var and /etc have to be mounted in /run/nextroot
    explicitly. As a soft-reboot can also be triggered by an admin the
    mounting of the corresponding mount points was moved to a systemd service
    to be independent of t-u itself.
  * Support for systemd 255
  * Don't decrease reboot level on multiple commands
  * Various other bugfixes
  * soft-reboot support is disabled by default now to gather more feedback
* libtukit: Fix kexec reboot method to boot kernel / initrd of next snapshot
* tukit: Don't clone lock file handle on exec [boo#1222411]
* t-u: Always use zypper of installed system [bsc#1221346]
* t-u: Remove remaining telemetrics references

Version 4.6.0 (2024-03-04)
* tukit / t-u: Implement support for systemd soft-reboot, but needs package
  manager support (provided by zypp-boot-plugin on openSUSE) to determine which
  kind of reboot is required; the minimally required reboot method (soft-reboot,
  kexec, full reboot) will be used automatically if enabled (see tukit.conf).
  This deprecates the "kexec" reboot method in favour of automatic selection.
* tukit: Determine D-Bus availabilty via system socket instead of brute force
* tukit: Don't ignore return status of snapper - plugins can return an error
  code now where tukit has to fail [gh#openSUSE/transactional-update#118] /
  [poo#127169]
* tukit: Remove BTRFS dependencies in snapper backend, user snapper for
  for everything directly. In theory this should support further file systems
  such as bcachefs if they follow the same layout (untested).
* t-u: Add safety net before deleting overlays [boo#1217416]
* t-u: Remove telemetry support, the required packages haven't been in the
  repository for quite some time as they were abandonned upstream.
* doc: Document option to use names in BINDDIRS array
* doc: Mention tukit.conf in t-u man page
* doc: Link Reboot.hpp as an officially supported API on the main page
* Code cleanup

Version 4.5.0 (2023-11-20)
* libtukit: Use permissions of real /etc when creating overlay
  [bsc#1215878]
* libtukit, tukit: Support "rollback" via library now
* tukitd: Implement Snapshot delete and rollback methods
* tukit: Check for missing arguments with "close" and "abort" commands
* t-u: Warn user when using "kdump" if it isn't configured to avoid
  confusion with "setup-kdump" [boo#1215725]
* t-u: Abort if mkdumprd run is not successful
* t-u: Use default from config file if t-u is called without arguments
  [gh#openSUSE/transactional-update#101]
* Improved README.md [gh#openSUSE/transactional-update#59] and API docs
* Code cleanup

Version 4.4.0
* t-u: Introduce setup-fips command [jsc#SMO-194]
* libtukit: Always set a cleanup algorithm for snapshots - when using API,
  D-Bus interface or tukit the snapshots will be automatically cleaned up
  by snapper after some time now; in the past only snapshots created by
  the transactional-update shell script would be cleanup after, and only
  after a `t-u cleanup` run. [gh#openSUSE/transactional-update#62]
* tukit: enable kexec's syscall detection feature
* tukit: Don't throw exceptions from the child process after fork
* tukitd: Rename service file to org.opensuse.tukit.service
* tukitd: Allow querying DBus Properties [boo#1214707]
* t-u: Add support for fully written-out update commands
* t-u: Improve detection of existing kernel parameters

Version 4.3.0
* Replace custom tu-rebuild-kdump-initrd with call to mkdumprd
  [gh#openSUSE/transactional-update#107].
* Add support for libmount 2.39. The behaviour change was not intended
  and will be changed in 2.39.1 (see [gh#util-linux/util-linux#2326],
  but it was easy to fix it anyway.
* Honor LIBMOUNT_DEBUG variable for additional output.

Version 4.2.1
* Add backwards compatibility with older snapper releases, otherwise
  the selfupdate may break if the installed snapper version is too old;
  requires snapper 0.8.10 as a minimal base (for rollbacks) now

Version 4.2.0
* Implement "apply" command to switch into new snapshot directly
* Use new snapper functionality to set default snapshot - this makes it
  possible to execute hooks as requested in [poo#127160],
  [gh#openSUSE/transactional-update#85] and
  [gh#openSUSE/transactional-update#105].
* Don't hardcode GRUB2 [gh#openSUSE/transactional-update#85] /
  [poo#127154]
* Fix cleanup handler
* Fix unmounting temporary mounts
* Prevent loosing track of snapshots in certain rollback scenarios - these
  would not be marked for deletion otherwise
* Document "notify" reboot method

Version 4.1.5
* Add support for configuration file snippets

Version 4.1.4
* Workaround for broken Tumbleweed package libfdisk1

Version 4.1.3
* Suppress SELinux relabelling output in quiet mode
* Documentation readability improvements
 
Version 4.1.2
* Don't try to mount user mounts if they don't exist [boo#1207366]

Version 4.1.1
* Mount user specific binddirs last: Prevously the internal mounts would
  potentially overwrite user bind mounts [boo#1205011]
* selinux: Relabel shadowed /var files during update to make sure they
  don't interfere with the update [boo#1205937]
* Clean up /var/lib/overlay more aggressively [boo#1206947]
* tukit: Merge /etc overlay into parent if --discard is used together
  with --continue - previously the files were incorrectly always merged
  with the currently running system
* status: do not execute the status command if experimental
* Don't delete created mount point dirs any more
* Small code optimizations

Version 4.1.0
* t-u: Add a "setup-kdump" command; implements [jsc#PED-1441]
* Add support for ULP (Userspace Live Patching) [jsc#PED-1078]:
  * Export TRANSACTIONAL_UPDATE_ROOT (the path to the snapshot) in
    the update environment
  * Unfortunately requires a separate bind mount in /tmp again for the
    update environment, as libpulp has to be able to access the snapshot
    directly, without it being bind mounted on itself
* Add support for "notify" reboot method for desktop use
  [gh#openSUSE/transactional-update#93]
* Fix kdump initrd recreation detection; the check was performed in the
  active snapshot instead of the target snapshot
* Document register command [bsc#1202900]
* Avoid unnecessary snapshots for register command [bsc#1202901]
* Various optimizations for register command
* Remove bogus error message when triggering reboot
* Rework /etc overlay documentation in "The Transactional Update Guide"
* Fix incorrect manpage formatting
* Remove leftover "salt" reboot method in configuration example file
* Replace deprecated std::mem_fn with lambdas

Version 4.0.1
* create_dirs_from_rpmdb: Just warn if no default SELinux context found
  [gh#openSUSE/transactional-update#88], [bsc#1188215]
* create_dirs_from_rpmdb: Don't update the rpmdb cookie on failure
  [gh#openSUSE/transactional-update#88]
* Handle directories owned by multiple packages
  [gh#openSUSE/transactional-update#90], [bsc#1188215]

Version 4.0.0
* Last minute interface change: Changed "List" method of Snapshot D-Bus
  interface to return a map of properties instead of a comma separated
  list of strings; this will allow retrieving the snapshot properties
  even if they contain a comma in their value
* Remove "Snapshot.hpp" as a public API for now - all public
  functionality is part of SnapshotManager.hpp
* Add header file documentation for SnapshotManager.hpp
* Add method to delete snapshot
  [gh#openSUSE/transactional-update#52]
* Allow setting description of snapshot
  [gh#openSUSE/transactional-update#55]
* create_dirs_from_rpmdb: set SELinux file context of missing directories
  [gh#openSUSE/transactional-update#84], [bsc#1197242]
* Fix broken logrotate due to typo in config file
  [gh#openSUSE/transactional-update#87]
* create_dirs_from_rpmdb: Fix handling return code of create_dirs()
  [gh#openSUSE/transactional-update#86]
* Fix broken "shell" prompt after selfupdate
* Add documented D-Bus interface definition files
* Add tukit_sm_get_current and tukit_sm_get_default to C interface
* Fixed typos

Version 4.0.0~rc4
* Fix building with GCC 12
* Fix stack overflow with very long commands / ids [bsc#1196149]
* Use separate mount namespace for chroot, allowing overwriting the bind
  mounts from the update environment - this could have lead to data loss
  of the bind mount previously
* Fix C error and exception handling for snapshots

Version 4.0.0~rc3
* Add Snapshot interface
* Reworked signal handling: All public signals are sent from the
  main thread now, keeping the same sender for everything
* Implement D-Bus call "Execute" for Transactions
* Implement interface for listing Snapshots
* Implement Reboot interface
* Fix bug when using --continue on old snapshots
* Fix hypothetical integer overflow in snapshot list [bsc#1196826]
* Fix wrong sort order in status command
  [gh#openSUSE/transactional-update#80]

Version 4.0.0~rc2
* Fix missing prompt in "shell" command [bsc#1196580]
* Add output of tukit commands to log file
* Fix compilation error with GCC12 [boo#1194876]
* Fixed (non-critical) security review comments [boo#1196149]
* Fixed selfupdate
* Code cleanup

Version 4.0.0~rc1
This release is API, but not ABI compatible with previous releases;
existing applications will have to be recompiled against this new
version.
Major features:
* Introduces a D-Bus service to access the libtukit API via the
  org.opensuse.tukit.Transaction interface
* Introduces a C binding via libtukit.h.
Other changes:
* t-u: Rework --quiet handling to make sure no output is shown even in
  error cases; this is necessary for automation, e.g. with Salt.
  [gh#openSUSE/transactional-update#73]
* tukit: Allow storing command output into variable by introducing a new
  optional parameter for "execute" and "callExt".
* Replace multiple and non-standalone occurenses of {} in "callExt"
  argument.
* Split transactional-update.timer into transactional-update.timer
  and transactional-update-cleanup.timer; the later will clean up
  old snapshots even when the system does not do automatic updates.
* tukit: Remove legacy alias "setDiscard" for "setDiscardIfUnchanged".
* Throw exception if snapshot is not found.
* Fix various compiler warnings

Version 3.6.2
* Bind mount root file system snapshot on itself, this makes the
  temporary directory in /tmp unnecessary; also fixes [boo#1188110]
  to return the correct snapshot's working directory via API call.
* Use separate mount namespace for transactional-update; this should
  fix several applications that fail to run if a mount point has the
  'unbindable' mount flag set

Version 3.6.1
* Fix rsyncing /etc into the running system with --drop-if-no-change
  [bsc#1192242]

Version 3.6
* Simplify mount hierarchy by just using a single slave bind mount as
  the root of the update environment; this may avoid the error
  messages of failed unmounts

Version 3.5.7
Various fixes affecting Salt support:
* t-u: Don't squash stderr messages into stdout
* t-u: Correctly handle case when the snapshot has been deleted due to
  using --drop-if-no-change: Don't show reboot messages and avoid an awk
  error message [bsc#1191475]
* tukit: Make inotify handler less sensitive / ignore more directories
  [bsc#1191475]

Version 3.5.6
* tukit: Add S/390 bootloader support [bsc#1189807]
* t-u: support purge-kernels with t-u patch [bsc#1190788]

Version 3.5.5
* t-u: Use tukit for SUSEConnect call [bsc#1190574]

Version 3.5.4
* t-u: Fix resolved support [boo#1190383]

Version 3.5.3
* t-u: Purge kernels as part of package operations
  Required for live patching support [bsc#1189728]

Version 3.5.2
* tukit: Fix overlay syncing errors with SELinux [bsc#1188648]
  "Transactional update fails with SELinux enabled: rsync: rsync_xal_set:
  lremovexattr failed: Permission denied (13)"
* t-u: Don't print message for `shell` with --quiet
  [gh#openSUSE/transactional-update#69]
  "Some output remains despite --quiet"

Version 3.5.1
* t-u: Disable status file generation by default
  The new experimental `status` command requires the availability of
  /etc/YaST2/control.xml, which is not present on all systems. Hide the
  creation of the corresponding status file behind a new EXPERIMENTAL_STATUS
  option to try out this functionality.
* Increase library version

Version 3.5.0
* Add alias setDiscardIfUnchanged for setDiscard. The old method name
  wasn't really clear and will be removed if we should have an API break
  in the future
* Replace mkinitrd with direct dracut call [boo#1186213]
* tukit: Add configuration file support (/etc/tukit.conf)
* Allow users to configure additional bind mounts (see /usr/etc/tukit.conf
  for an example and limitations) [bsc#1188322]
* Add 'transactional-update status' call. This is a POC for obtaining a
  hash of a system to verify its integrity. The functionality is still
  experimental!
* Internal bugfixes / optimizations

Version 3.4.0
* Apply SElinux context on /etc in transaction [boo#1185625], [boo#1185766]
  [bsc#1186842], [boo#1186775]
* Implement inotify handling in C instead of Bash; this makes the
  --drop-if-no-change option work on SLE Micro [bsc#1184529]
* Use `tukit call` for up, dup and patch to allow resuming an update after
  zypper updated itself in the snapshot [bsc#1185226]
* Fix obsolete output type messages in initrd [boo#1177149]
* Make different base snapshot warning more visible [bsc#1185224]

Version 3.3.0
* Add support for more package managers by bind mounting their directories
* Support snapshots without dedicated overlay [boo#1183539], [bsc#1183539]
* Link RPM database correctly with older zypper versions [boo#1183521]
* Don't discard manual changes in fstab [boo#1183856]

Version 3.2.2
* Don't skip patches with rebootSuggested flag

Version 3.2.1
* t-u: Forward --quiet option to tukit
* Regression: Add /opt as bind mount into update environment
* Remove output indicators of the called command to not tamper the result
  line
* Fix /etc syncing with --drop-if-no-change

Version 3.2.0
* tukit: Add new command 'callext' to execute an application while the
  snapshot is mounted. '{}' as a parameter will be replaced with the path
  of the bind mount.
* Fix --drop-if-no-change [boo#1182525]
* Check whether self-updated version is executable (e.g. on noexec /tmp)
  [bsc#1173842]
* Fix overlay synchronisation with SELinux (again)
* Always overwrite supplemental files (e.g. for network configuration)
  even if they exist in the snapshot already [boo#1182544]
* Improve logging and error messages

Version 3.1.4
* SELinux: Fix syncing of SELinux attributes when using overlays
* SELinux: Tag the overlay directory itself (again)

Version 3.1.3
* Fix overlay syncing on SELinux systems
* Fix resuming transactions where the parent does not exist any more

Version 3.1.2
* libtukit: Report when application was terminated due to a signal, and
  return the signal number as a return value. This will cause the
  transaction to be aborted when called via `execute`.
* libtukit: Set PATH variable for internal commands to fixed value to
  find the helper applications, as in some environments such as PolicyKit
  PATH wouldn't be set.
* Fix compiler warnings

Version 3.1.1
* Fix hang in tukit on aarch64 [bsc#1181844]
* Prevent deletion of snapshots when resuming a snapshot where no transaction
  is open
* Make tukit work in non-dbus environments [boo#1181934]

Version 3.1.0
* t-u: Support installing RPMs from the user's directory again
* Adapt selfupdate to new packaging
* Implement signal handling
* Remove empty text files

Version 3.0.0
* This release changes the internal structure, but should be identical to the
  previous release feature wise.
* Major parts of the previous Bash only application have been rewritten in C++
  with the goal to provide an API around transactions; the transactional-update
  script is using that new interface internally already, however the API should
  be considered experimental for now - if you are interested to use it, please
  notify us in https://github.com/openSUSE/transactional-update/issues/52
* A new tool called "tukit" is providing a Shell wrapper for above
  functionality. Please also consider it experimental for now, the commands may
  still change.
* Bugfixes:
  * Implement support for system offline update [boo#1180808]
  * Add statistics files to update environment [boo#1173282]

Version 2.28.3
* SELinux: Make synchronisation work for both pre-SELinux snapshots and later
  snapshots; SELinux support should be ready for most tasks now.

Version 2.28.2
* SELinux: Exclude security.selinux attribute from rsyncing (again)

Version 2.28.1
* SELinux: Fixed changing the wrong grub configuration file
* SELinux: Move /.autorelabel file to writeable location

Version 2.28
* Add 'setup-selinux' command for easy setup of a SELinux system
* Allow complex commands for the 'run' command
* SELinux: Fix /etc / overlay labeling

Version 2.27
* Add support for network systemd-resolvd network connections in t-u
  environment
* Mount /var/lib/ca-certificates read-write to prevent SELinux error
* Prevent calling transactional-update from within transactional-update

Version 2.26
* Fix broken sync for second snapshot [boo#1176989]
* Add new options to allow separate cleanup of snapshots and overlays
* Check for existence of inotifywait before using it
* Check that mount options don't exceed maximum length

Version 2.25.1
* Fix inotify watcher setup
* Use log_{info,error} for more messages to avoid messing up Salt logs

Version 2.25
* Reduce number of overlays:
  Instead of using transparent overlays for all previous layers only add the
  previous snapshot's overlay; this will greatly reduce the number of overlays
  while still making sure that /etc changes in the running system will be
  visible in the next snapshot
* When using --drop-if-no-change synchronize potential /etc changes with
  running system
* Exclude all non-root-fs mounts from inotify watcher

Version 2.24.1
* SELinux: adjust labels for etc, fstab and grub.cfg

Version 2.24
* Add partial SELinux support

Version 2.23
* Add "run" command to be able to execute a single command in a new snapshot
* Add "--drop-if-no-change" option to discard snapshots if no changes were
  perfomed (BETA, required for Salt integration)
* Removed previous CaaSP Salt support
* Avoid "file not found" message on systems without /var subvol

Version 2.22
* Use pkgconf to determine installation paths
* Enable SSL connections in update shell [boo#1149131]

Version 2.21.1
* Rework error messages on failing umount [boo#1168389]

Version 2.21
* Use slave mounts for /proc, /sys & /dev - this will also provide all
  submounts into the update environment

Version 2.20.4
* Mount efivarfs on EFI systems to make sure the bootloader will be installed
  correctly.
* Fix removal of existing overlay directories

Version 2.20.3
* Reintroduce compatibility with RPM < 4.15 for inclusion in SLE / Leap 15.2
* Prepare for removal of /var/lib/alternatives [jsc#SLE-9101]

Version 2.20.2
* Use full names for zypper options [bsc#1164543]
* Ignore /var/lib/rpm in shandowed file output
* Optimize create-dirs-from-rpmdb

Version 2.20.1
* Add missing documentation about --continue option
* Avoid error message about missing fstab file on first snapshot creation.
  [boo#1160213]

Version 2.20
* Add the option `--continue` to extend an existing snapshot; this can be
  used to perform multiple operations before rebooting into the new state
* Make sure the dracut service to print warnings on /etc overlay conflicts
  also runs in the pre-made images
* Add "none" reboot method
* Remove conflicting overlay artifacts in case an existing overlay directory
  will be reused

Version 2.17
* Provide network in shell on systems where resolv.conf is pointing to /run
  directly [boo#1151081]
* Print new snapshot number at the end
* Always mount /root subvolume when using shell command to preserve history

Version 2.16
* Use default command if options, but no command was given [boo#1146116]
* Make sure only one process appears in `ps` output [boo#1111897]
* Move update check: If a new repository is added (and
  ZYPPER_AUTO_IMPORT_KEYS is set) adding the new repository key won't fail any
  more
* Avoid unnecessary snapshots / reboots by detecting zypper operations
  without changes more reliably (e.g. when installing an already installed
  package)
* Update the manpage accordingly
* Get rid of Perl dependency
* Building documentation requires Python 3 now
* Bugfixes:
  * Ignore commented lines in fstab when checking for shadowed files
  * Avoid warning when copying network config

Version 2.15
* Move description of interactiveness [boo#1132438]
* Enable network during update [boo#1137890]
* Add compatibilty with new overlayfs versions [boo#1140057]
* Allow updates of the bootloader on EFI systems [boo#1139015]
* Add support for /boot/writable [boo#1126900]

Version 2.14.2
* Prevent unnecessary error message on systems not installed with YaST (e.g.
  KIWI)

Version 2.14.1
* Improve non-root fs changes checker based on feedback
* Disable snapper's zypper plugin during transactional-update run

Version 2.14
* Warn user if contents of /var have been changed
* Small cleanups
  * Noteworthy: swapped position of upperdir and lowerdir in fstab for better
    readability
* Major update to the transactional-update guide

Version 2.13.2
* Add hooks for telemetrics

Version 2.13.1
* Bugfix: Clean up empty /etc snapshot directories again

Version 2.13
* Fix a serious data loss problem (deleting all files in /etc
  overlays) in case /var/lib/overlay/etc is not part of any snapshot
  any more.
* Avoid error message in case a system has no /etc/fstab.sys

Version 2.12
* Implements support for needs-restart (Fate#326451)
* Adds easy rollback to last known working snapshot by using "last"
  as the snapshot number
* Migrate /etc/fstab.sys entires to /etc/fstab for systemd being
  able to create mount units; this will prevent errors on unmount
  during shutdown for /var and /etc
* Remove implicit --no-allow-vendor-change - this option can be
  configured in zypper's configuration file now
* Add support for mounting the /etc overlay file system as a systemd
  unit in /etc/fstab on a read-only system (replacing /etc/fstab.sys
  in the long run)
* Various bugfixes:
  * Only remove /etc overlays on read-only root file systems
    [boo#1122455]
  * Disable "Persistent" flag in systemd timer unit to prevent
    updates during or immediately after the boot phase
  * Don't set global zypper options during migration - this is not
    supported by the migration plugin
  * Fix error handling when interrupting while rsync is running
  * Filter out security.selinux attributes during rsync

Version 2.11
* Update man page to explain new /etc overlay handling
* Add special handling for migrating away from old overlay directory
* Read default update method for systemd service from config file
  (boo#1111321)

Version 2.10
* Introduce /etc overlays
  * Each root file system snapshot now has a dedicated /etc overlay in
    /var/lib/snapshots/<snapshot number>/etc
  * Changes in older snapshots will be visible in newer snapshots (if
    the file hasn't been changed in both snapshots), but not the other
    way around; this makes it possible to roll back to a previous
    snapshot even if the configuration is broken
  * The /etc state of the oldest active snapshot will be synchronized
    into the new snapshot to prevent ever growing overlays
  * Removed creation of /etc backup snapshots
  * Removed complex overlayfs cleanup handling during dracut early boot;
    only thing left is to output a warning if files have been changed
    in old and new overlay after snapshot creation
  * Unused overlays will be removed during "cleanup" operation
* Add compatibility with snapper >= 0.7.0
* Correctly detect BTRFS ID when using multiple snapper configurations
* Fix disappearing prompt in "shell" command when application was updated
* Prevent accidental rollback on fast reboots (boo#1111786)
* Use zypper attribute packages-to-change if available (boo#1105992 &
  boo#1097619)
* Add kexec as reboot alternative
* Added explicit --with-doc / --without-doc build configure opttions for
  enforcing or excluding documentation build
* Removed precompiled documentation (boo#1088676)
* Added more dependency checks to configure script
* Small improvements to documentation
* Restored compatibility with older rsync versions not supporting the -x
  filter
* Small bugfixes for cleanup in error situations
* Fix possible incorrect detection of snapshots numbers during cleanup
* Mention parent in snapshot description

Version 2.6
* Add --interactive and --non-interactive options to change the default
  interactivity for zypper calls. For previously non-interactive calls (e.g.
  dup) these options makes it possible to pick the correct solution in case
  of conflicts or make sure that a script will never be stuck at an input
  prompt.
* Add kured reboot support
* Tries to clean up temporary files and mount points if transactional-update
  quits unexpectedly
* Remove trancactional-update-helper (replaced by zypper options)
* Create /var/lib/zypp if not available (boo#1104452)
* Add compatibility with new zypper versions (boo#1105992)
* Various small fixes

Version 2.5
* Support for overlayfs attributes like trusted.overlay.opaque - this will
  avoid disappearing configuration files on system updates
* Documentation update
* Only sync /etc if it's on an overlayfs mount
* Use correct locale for zypper - thus updating locale specific packages and
  avoiding "empty" updates where transactional-update didn't see the change

Version 2.4
* Bug fix release

Version 2.3
* Reformat help text / synopsis
* More detailled output (use --quiet for less output)
* Log all error messages into log file
* Avoid potential lock file race condition on self update
* Accept package names with whitespace
* Don't wait for user input during self-update
* Fix broken error message output when creating new snapshot without reboot
* Fix erroneous mounting of stale grub mounts

Version 2.2
* Fix security issue in self update
* Create dirs in /var more reliably by sorting the list

Version 2.1
* Cleanup /etc cleanup

Version 2.0
* Create missing directories from rpm database during boot
* Merge /etc overlay with root subvolume during update
* Implement register option

Version 1.29
* Implement self-update
* Disable optical media on dup
* Ignore certain zypper return codes

Version 1.28
* Adjust for latest grub2 changes

Version 1.27
* Fallback to snapper without dbus support if dbus fails
* Add workaround for update-alternatives
* Add support for /usr/etc/transactional-update.conf

Version 1.26
* Auto accept repo keys config option
* Detect broken snapshots after abort
* Ignore user deleted snapshots
* Include all error messages in main log file
* Add configuration file
* Correctly implement migration of major OS versions
* Default reboot strategy is configuration option
* Salt option is deprecated

Version 1.25
* Add support for seperate /var partition
* Preliminary SELinux support

Version 1.24
* Fix saving of unused snapshots too early
* Copy passwd, group and shadow to /usr/etc if modified

Version 1.23
* Fix re-registration in rollback case
* Fix problems with updating the grub2 bootloader
* Add support for migration of products with SCC
* Re-add support to re-write bootloader

Version 1.22
* Rewrite cleanup code

Version 1.21
* Reset salt grains if no updates are available

Version 1.20
* Document more options
* Add pkg update option
* Fix output in error case

Version 1.19
* Add undocumented 'shell' option for debugging and testing

Version 1.18
* Auto accept product license in non-interactive mode

Version 1.17
* Copy some modified config files for bootloader into the snapshot

Version 1.16
* Set environment variable that transactional update is running
* Some updates to the systemd units

Version 1.15
* Add support to ceate salt grains with current status
* Rename ptf to pkg

Version 1.14
* Fix check of return values of commands in pipes

Version 1.13
* Remove not-working bootloader option

Version 1.12
* Minor bug fixes

Version 1.11
* Use dup by default if called from systemd
* Use --no-allow-vendor-change with "dup"
* Update manual page

Version 1.10
* Implement rollback

Version 1.9
* Fix umounting of /sys
* Update documentation

Version 1.8
* Fix references in html pages
* Build kdump initrd when building standard initrd, too

Version 1.7
* Disable interactive install mode for PTFs
* Build html version of man pages, too

Version 1.6
* Add support for kdump

Version 1.5
* Install PTFs in interactive mode
* Make sure state file is in sync between snapshots

Version 1.4
* More debug output in case umount fails
* Give umount a second try if it fails

Version 1.3
* Implement "initrd" option to regenerate initrd

Version 1.2
* Add support for read-only subvolume with overlayfs

Version 1.1
* Bug fixes
* Implement lock file

Version 1.0
* Implement and document PTF option

Version 0.99
* Write real manual page

Version 0.90
* Finish normal options
* Implement PTF option

Version 0.1
* Initial release
