Thank you for your detailed concerns regarding classic confinement and its implementation in our snap, Xcasca. I’d like to address how we’ve approached this to ensure a safe and consistent experience across distributions, including Gentoo, openSUSE, Debian, Fedora, and Arch, while transitioning from our existing app, PortX (available at Install portx on Linux | Snap Store), to Xcasca.
Xcasca is a lightweight, cross-platform SSH and SFTP client with a straightforward terminal emulation focus, which keeps its requirements relatively simple compared to more complex applications. This simplicity has allowed us to leverage electron-builder effectively without the need for extensive snapcraft.yaml fine-tuning or binary patching.
While electron-builder is known to work best for simpler projects, Xcasca’s architecture aligns well with this. The application is primarily a self-contained Electron-based app, bundling its dependencies (e.g., Node modules and required system libraries) within the snap. We use electron-builder to generate the initial snapcraft.yaml, which we then manually refine in the Snapcraft console to ensure compatibility and proper configuration for classic confinement. This approach has worked seamlessly, as Xcasca does not require complex interactions with external system resources beyond what’s necessary for SSH/SFTP and terminal emulation.
Our experience maintaining PortX has been instrumental. PortX, which also uses classic confinement, has not encountered issues with local shell access or file transfer features (e.g., SFTP). We’ve applied the same principles to Xcasca, ensuring that the snap’s environment is properly isolated and that file system access for SSH/SFTP operations is handled within the snap’s boundaries. The transition from PortX to Xcasca has been smooth, as both apps share a similar architecture, and we’ve reused proven configurations from PortX to avoid common pitfalls.
In summary, Xcasca’s simplicity as a terminal emulator and SSH/SFTP client means it doesn’t require the complex adjustments that more resource-intensive applications might need. By leveraging electron-builder’s snap support, carefully configuring the snapcraft.yaml, and drawing on our successful experience with PortX, we’ve ensured that Xcasca’s classic confinement is both safe and consistent across Linux distributions. We’re confident that this approach avoids the pitfalls you’ve highlighted, and we’ll continue to monitor and refine the snap as we phase out PortX. If you have specific concerns or scenarios you’d like us to address, we’re happy to dive deeper!