aboutsummaryrefslogtreecommitdiff

apt-desktop-upgrades

Automated upgrades for desktop systems Copyright © 2022 Adam Spragg adam@spra.gg

Version 0.1

The unattended-upgrades package is really useful for servers, but I've found that a reasonable amount of desktop software doesn't play well to being replaced in situ, while a user is using the desktop.

This package is designed to handle desktop upgrades by checking for and downloading package upgrades in the background as they become available, and then applying those upgrades on reboot via the systemd Offline Updates functionality.

Installation

A simple make install will install to /usr/local by default.

You can run make PREFIX=/new/prefix to modify the scripts to base itself somewhere other than /usr/local, e.g. make PREFIX=/usr. make install will then install to that location.

If you want to install to a separate location, e.g. if you're building a package, you can use DESTDIR to accomplish this, e.g. make install DESTDIR=/path/to/packaging.

Under normal installs, after copying systemd service and timer units into place, the installation process will call systemctl daemon-reload and enable various units. If DESTDIR is set and different from PREFIX, then these steps are omitted.

Similarly, systemd is normally notified on make uninstall, but again if DESTDIR is set and different from PREFIX, the steps are omitted again.

apt-listbugs

We disable apt-listbugs during upgrades, because desktop systems typically use NetworkManager, which is not started by default for offline-updates.target. And if apt-listbugs can't reach the network, it aborts the upgrade.

There is experimental functionality for checking apt-listbugs (if it is installed) during the updating/downloading packages phase. If any bugs are found for any of the packages to be upgraded, then an upgrade is not scheduled (and if one already is, it is cancelled).

To enable this functionality, set CHECK_LISTBUGS=true in adu-download.

TODO

Notifying users about updates

Find a better way of getting a list of logged in users and their DBus session bus address than find /run/user -type s -name bus.

License

apt-desktop-upgrades is free software: you can redistribute it and/or modify under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

apt-desktop-upgrades is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with apt-desktop-upgrades. If not, see https://www.gnu.org/licenses/.

SPDX-License-Identifier: LGPL-3.0-or-later