performance: Handle install for trixie

In trixie, cockpit-pcp is replaced by cockpit-bridge. However, our
packages module does not properly handle virtual packages.

- Specify cockpit-bridge and pcp as dependencies. In bookworm, they were
  dependencies of cockpit-pcp.

- Allow cockpit-bridge as a substitute for cockpit-pcp.

Tests:

- In stable container, install Performance app. Install succeeds and app
  is available.

- In testing container, install Performance app. Install succeeds and
  app is available.

- Build stable-backports package with new version. Install in stable VM.
  Install Performance app. Check that dist-upgrade succeeds. After
  dist-upgrade, Performance app is still working. Uninstalling
  Performance app works. Installing Performance app works. Diagnostics
  are all passed.

Note: There is one minor issue with the Diagnostics. Package
cockpit-bridge line is shown twice (both are passed).

Fixes: #2475

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
This commit is contained in:
James Valleroy 2025-06-18 20:25:05 -04:00 committed by Sunil Mohan Adapa
parent f40523a1b1
commit 331d214c6f
No known key found for this signature in database
GPG Key ID: 43EA1CFF0AA7C5F2

View File

@ -9,7 +9,7 @@ from plinth import app as app_module
from plinth import menu from plinth import menu
from plinth.daemon import Daemon from plinth.daemon import Daemon
from plinth.modules.backups.components import BackupRestore from plinth.modules.backups.components import BackupRestore
from plinth.package import Packages from plinth.package import Package, Packages
from . import manifest from . import manifest
@ -49,7 +49,15 @@ class PerformanceApp(app_module.App):
order=40) order=40)
self.add(menu_item) self.add(menu_item)
packages = Packages('packages-performance', ['cockpit-pcp']) packages = Packages('packages-performance', [
# For bookworm, we need cockpit-pcp (which depends on
# cockpit-bridge and pcp). For trixie, cockpit-pcp is
# replaced by cockpit-bridge, and we need to specify a
# dependency on pcp. There is some issue with having a
# virtual package specified, see #2475.
Package('cockpit-pcp') | Package('cockpit-bridge'),
'cockpit-bridge', 'pcp'
])
self.add(packages) self.add(packages)
backup_restore = BackupRestore('backup-restore-performance', backup_restore = BackupRestore('backup-restore-performance',