Skip to content

Dependency Refactoring: Replace cockpit with cockpit-bridge to allow minimalist managed-node installs #103

@nicky1605

Description

@nicky1605

Description: Currently, cockpit-navigator has a hard dependency on the cockpit meta-package.

Why this is problematic: For users managing multiple remote hosts through a single dashboard, the remote hosts (managed nodes) only require the plugin files and the bridge. By depending on cockpit, the package manager forces the installation of cockpit-ws which starts a web service on every managed machine. This violates the principle of least privilege and increases the attack surface on minimalist servers.

Technical Detail:

Actual Requirement: cockpit-navigator only needs cockpit-bridge to communicate with the management node and local tools (rsync, python3).

Current Dependency Tree: cockpit-navigator -> cockpit -> cockpit-ws.

Requested Change: Please update the control file (Debian) and .spec file (RPM) to depend on cockpit-bridge instead of the cockpit meta-package. This aligns with how other modular Cockpit plugins (like cockpit-podman or cockpit-machines) are packaged.

root@crew1:~# dpkg -l | grep cockpit
ii  cockpit-bridge                     287.1-0+deb12u3                         amd64        Cockpit bridge server-side component
ii  cockpit-networkmanager             287.1-0+deb12u3                         all          Cockpit user interface for networking
ii  cockpit-pcp                        287.1-0+deb12u3                         amd64        Cockpit PCP integration
ii  cockpit-system                     287.1-0+deb12u3                         all          Cockpit admin interface for a system
root@crew1:~# 
root@crew1:~# dpkg -s cockpit-pcp | grep -E "Depends|Recommends"
Depends: libc6 (>= 2.34), libglib2.0-0 (>= 2.67.1), libjson-glib-1.0-0 (>= 1.5.2), libpcp3, libsystemd0 (>= 235), cockpit-bridge (>= 287.1-0+deb12u3), pcp
root@crew2: ~# dnf list installed | grep cockpit
cockpit-bridge.noarch                          344-1.el9.rocky.0.1              @baseos          
cockpit-files.noarch                           24-1.el9                         @appstream       
cockpit-system.noarch                          344-1.el9.rocky.0.1              @baseos          
root@crew2: ~# dnf repoquery --requires cockpit-bridge.noarch
Last metadata expiration check: 1:08:38 ago on Tue 27 Jan 2026 12:18:12 AM CST.
/usr/bin/python3
python(abi) = 3.9
root@crew2: ~# 
root@captain:/tmp# dpkg -l | grep cockpit
ii  cockpit                              352-1~bpo24.04.1                         all          Web Console for Linux servers
ii  cockpit-bridge                       352-1~bpo24.04.1                         all          Cockpit bridge server-side component
ii  cockpit-navigator                    0.5.12-1jammy                            all          A File System Browser for Cockpit.
ii  cockpit-networkmanager               352-1~bpo24.04.1                         all          Cockpit user interface for networking
ii  cockpit-packagekit                   352-1~bpo24.04.1                         all          Cockpit user interface for apps and package updates
ii  cockpit-storaged                     352-1~bpo24.04.1                         all          Cockpit user interface for storage
ii  cockpit-system                       352-1~bpo24.04.1                         all          Cockpit admin interface for a system
ii  cockpit-ws                           352-1~bpo24.04.1                         amd64        Cockpit Web Service
root@captain:/tmp# 
root@captain:~# apt depends cockpit-navigator
cockpit-navigator
  Depends: cockpit
  Depends: python3
  Depends: rsync
  Depends: zip
  Depends: file
  Depends: coreutils
  Depends: inotify-tools

root@captain:~# dpkg -s cockpit-navigator | grep -E "Depends|Recommends"
Depends: cockpit, python3, rsync, zip, file, coreutils, inotify-tools
root@captain:~# dpkg -s cockpit | grep -E "Depends|Recommends"
Depends: cockpit-bridge (>= 352-1~bpo24.04.1), cockpit-ws (>= 352-1~bpo24.04.1), cockpit-system (>= 352-1~bpo24.04.1)
Recommends: cockpit-storaged (>= 352-1~bpo24.04.1), cockpit-networkmanager (>= 352-1~bpo24.04.1), cockpit-packagekit (>= 352-1~bpo24.04.1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions