From 33406d6cf63fe12e495381511cf6af54704d0933 Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Tue, 22 Sep 2026 13:57:08 +0100 Subject: Install LXD and Workshop on the corporate laptop --- docs/canonical-laptop.md | 7 +++++++ meta/canonical/snap.txt | 2 ++ scripts/canonical.py | 10 ++++++++-- tests/test_canonical.py | 12 +++++++++++- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/docs/canonical-laptop.md b/docs/canonical-laptop.md index 7485b6c..9048a3a 100644 --- a/docs/canonical-laptop.md +++ b/docs/canonical-laptop.md @@ -140,6 +140,13 @@ a terminal tool; this role does not install the pass Secret Service daemon. ## Package Sources +LXD is installed from `6/stable`. Workshop is installed from `stable` with +classic confinement, as required by the +[Workshop installation guide](https://ubuntu.com/workshop/docs/tutorial/part-1-get-started/). +Package deployment does not initialize LXD storage or networking, or grant LXD +group membership. Existing Snap installations keep their current track; check +`snap list lxd workshop` before using Workshop with an existing LXD installation. + | Source | Applications | | -------------- | ------------------------------------------------------------------------------------- | | Snap, stable | Firefox, Thunderbird, Ghostty, Mattermost, Zoom, Okular, LibreOffice | diff --git a/meta/canonical/snap.txt b/meta/canonical/snap.txt index b257610..46a54c1 100644 --- a/meta/canonical/snap.txt +++ b/meta/canonical/snap.txt @@ -5,3 +5,5 @@ mattermost-desktop zoom-client okular libreoffice +lxd +workshop diff --git a/scripts/canonical.py b/scripts/canonical.py index 7e6565f..35bfdcb 100644 --- a/scripts/canonical.py +++ b/scripts/canonical.py @@ -20,8 +20,14 @@ def packages(source: str) -> list[str]: def snap_install_commands() -> list[list[str]]: return [ - ["sudo", "snap", "install", name, "--channel=stable"] - + (["--classic"] if name == "ghostty" else []) + [ + "sudo", + "snap", + "install", + name, + "--channel=6/stable" if name == "lxd" else "--channel=stable", + ] + + (["--classic"] if name in {"ghostty", "workshop"} else []) for name in packages("snap") ] diff --git a/tests/test_canonical.py b/tests/test_canonical.py index 018d813..848bf6c 100644 --- a/tests/test_canonical.py +++ b/tests/test_canonical.py @@ -97,7 +97,17 @@ class PackageTests(unittest.TestCase): ["sudo", "snap", "install", "ghostty", "--channel=stable", "--classic"], commands, ) - self.assertEqual(sum("--classic" in command for command in commands), 1) + self.assertIn( + ["sudo", "snap", "install", "workshop", "--channel=stable", "--classic"], + commands, + ) + self.assertEqual(sum("--classic" in command for command in commands), 2) + + def test_lxd_uses_workshop_supported_track(self): + self.assertIn( + ["sudo", "snap", "install", "lxd", "--channel=6/stable"], + canonical.snap_install_commands(), + ) def test_flatpaks_are_user_scoped(self): commands = canonical.flatpak_install_commands() -- cgit v1.3.1