[trusty SRU/FFE] Add systemd binary package for snapd
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
init-system-helpers (Ubuntu) | ||||||
Trusty |
Fix Released
|
Undecided
|
Martin Pitt | |||
systemd (Ubuntu) | ||||||
Trusty |
Fix Released
|
High
|
Martin Pitt |
Bug Description
Rationale: For backporting snapd to 14.04 LTS, we need to provide systemd's service manager (not just logind and auxiliary services like logind or timesyncd). upstart will continue to do the actual booting, and systemd will act as a "deputy init" which by default does not ship with/start any services by itself. We will only support this on server (at the first iteration at least), not on desktops.
Regression potential: This is a new binary package in universe, so existing systems are unaffected (provided that we ensure that the other binary packages do not change and there are no code changes that affect processes other than the "deputy pid 1" service manager). So for plain upgrades the regression potential is very low. However, there is a medium potential for breakage when actually installing the new systemd package, as it might interfere with upstart jobs or other running processes, cause boot/shutdown hangs, etc.
For init-system-
Test plan:
1. Dist-upgrade a trusty installation to the proposed versions. Ensure this does not pull in "systemd", and that booting, shutdown, desktop startup, suspend on lid close, resume, logout, and user switching all still work.
2. Install the "systemd" binary package (this will replace/remove systemd-shim). Verify that you can talk to the service manager with "sudo systemctl status". Check that booting and shutdown continues to work without (significant) delays.
3. Ensure that "sudo journalctl" works and that "sudo systemctl status systemd-journald" is running and has a few lines of log at the end (unlike what you get when you run systemctl as user).
4. Install a package that ships a systemd .service file, such as "haveged". Ensure that the service file is ignored, "pgrep -af haveged" should only have *one* process and "systemctl status haveged" should not be running (it should not exist, or not be enabled and be inactive). [This part also needs the updated init-system-
The only services that are running are expected to be systemd-
5. Ensure that the standard targets are active, as that is where third-party/snap services hook into:
systemctl status sysinit.target multi-user.target default.target
6. Install snapd (not in trusty yet, e. g. from Thomas' PPA) and ensure you can install a snap, and its services start after installing the snap and after rebooting.
7. Run "sudo apt-get install --reinstall systemd" to ensure that upgrades to newer systemd trusty versions work. The running systemd should *not* be restarted as that would disrupt snapd and its services (verify that the pid in "initctl status systemd" is the same before and after the upgrade).
8. Run "sudo apt install -y colord && sudo apt purge -y colord". This should succeed.
9. Dist-upgrade to 16.04 to ensure that there are no file conflicts, dependency issues, etc.
description: | updated |
Changed in systemd (Ubuntu): | |
status: | New → Invalid |
Changed in systemd (Ubuntu Trusty): | |
status: | New → Confirmed |
status: | Confirmed → Triaged |
assignee: | nobody → Martin Pitt (pitti) |
importance: | Undecided → High |
description: | updated |
description: | updated |
description: | updated |
Changed in init-system-helpers (Ubuntu): | |
status: | New → Invalid |
description: | updated |
description: | updated |
description: | updated |
no longer affects: | init-system-helpers (Ubuntu) |
no longer affects: | systemd (Ubuntu) |
The code for this is in https:/ /git.launchpad. net/~ubuntu- core-dev/ +git/systemd- trusty (I started with an import of the current trusty version). A corresponding package is in https:/ /launchpad. net/~pitti/ +archive/ ubuntu/ systemd .
This still does not match all the requirements from above: while it removes all *.services that systemd ships by itself, there are a lot of packages in trusty which ship their own, and these services are currently started by the deputy systemd (Examples: dbus.service, haveged.service, systemd- udevd.service) -- some of them fail on port conflicts, but some others cause a second process to run. This also does not start systemd right after package installation.