offline updates
Open, LowPublic

Description

Do not install upgrades while the session is running it fucks things up. Instead update via systemd on bootup. Tech there. Needs looking into and implementation. Also might need checking with VDG first on whether this is really behavior we want. Also btrfs or zfs kind of need using by default to make this work reasonably since rollbacks are a major concern.

https://phabricator.kde.org/D2044
https://bugs.kde.org/show_bug.cgi?id=364897

Relevent bits of documentation

Requirements

  • Discover to have a switch to enable offline-updates (either buildtime or runtime)
  • Discover to have UI feedback that the user needs to restart the computer to install the updates
  • Plymouth to give install feedback (this should already be implemented)
  • Neon to default to BTRFS or ZFS, to do offline updates efficiently and safely we need to be able to properly rollback which requires a snapshot supporting filesystem.
sitter created this task.Jul 1 2016, 1:41 PM

So.

Functionality wise this actually works already.

pkcon --only-download update # downloads
pkcon offline-trigger # sets /system-update symlink for systemd
sudo reboot

Plymouth is also working, though I suggested that maybe we want to have different colors or something for update modes. Technically this isn't necessary as it looks just fine the way it is.

What is missing is actual integration in discover. Which Aleix says he didn't do because he wasn't sure we'd even want this.
Overall Alex and I seem to be in agreement that this needs to be distro opt-in (i.e. can be completely disabled) as the packagekit backend used needs to actually support the DOWNLOAD_ONLY flag, and additionally this type of update needs btfs/zfs as default FS for snapshotting.

colomar added a subscriber: colomar.Jul 7 2016, 1:01 PM

It definitely

  • Should be distro opt-in or opt-out, but not mandatory
  • Should not reboot automatically, but rather tell users that updates will only be applied upon reboot

Does this only apply actual _system_ updates or application updates as well? Having to reboot the system for any kind of update is what annoys people so much on Windows, as just restarting the application usually works just fine.

sitter added a comment.Jul 7 2016, 1:35 PM

Does this only apply actual _system_ updates or application updates as well? Having to reboot the system for any kind of update is what annoys people so much on Windows, as just restarting the application usually works just fine.

tldr: all updates.

Technically that depends on discover as it can tell apart applications from libraries/systemapps and it is a client choice. As far as packagekit is concerned the bit that sets offline updates apart from regular updates is the download-only + offline-trigger.

Practically, however, just restarting the application works until it doesn't work that one time and then you might have data loss or messed up configuration on your hand. So, offline updates are always the better choice.

This might be more clear cut in a future with containers, but for the time being every application is a system update as every application is part of the system and as such free to be used by any other part of the system (e.g. konsole kpart is part of konsole but used by some 10 other apps).

So, yeah, for now this ought to be all updates.

martin thinks would be a bad idea on dev editions, those users should know what they're in for

needs discover set up for this

<martin> if neon rolls it out successfully we should suggest very strongly to distros to do it

jriddell moved this task from Discussing to Ready To Do on the Neon board.Sep 6 2016, 11:38 AM

needs discussion with vdg
needs discussion with discover

sitter updated the task description. (Show Details)Sep 13 2016, 1:22 PM
sitter moved this task from Ready To Do to Blocked on the Neon board.Nov 14 2016, 1:34 PM

My 2 cents: we can provide a DBUS interface to reload opened apps, forcing to reboot computer is the worst case :)

jriddell moved this task from Blocked to Discussing on the Neon board.Aug 14 2017, 10:00 AM
jriddell moved this task from Discussing to Ready To Do on the Neon board.Oct 3 2018, 11:02 AM

mostly implementation issues