summaryrefslogtreecommitdiffstats
path: root/packaging/rpm/meshbay-client.spec
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-08-31 10:49:45 +0200
committerChristophe Besson <cbesson@gmail.com>2026-08-31 10:49:45 +0200
commit8d5c564e75ad2928e77ea66decc979366ca5ccd5 (patch)
tree7f88ceb2ccd838011bb2f399f148c7f9b39f75ec /packaging/rpm/meshbay-client.spec
parent0c2754d2d4cb1905d5e324f56fbc64e4afae526f (diff)
downloadmeshbay-8d5c564e75ad2928e77ea66decc979366ca5ccd5.tar.gz
feat(packaging): 4-package .deb/.rpm build system under /opt
Shared venv architecture: meshbay-common owns the Python venv with all pip deps pre-installed; hub and node add only their code into it. Client is a standalone Electron app. No pip runs at install time. - Add build scripts (packaging/build/) for common, hub, node, client - Add orchestrator build-packages.sh with deb/rpm auto-detection - Add .deb control/postinst for all 4 packages - Add .rpm specs for all 4 packages (replaces python3-meshbay-common) - Add Gnome .desktop launcher and icon resizing - Add firewalld services (meshbay-cast, meshbay-node) and UFW profiles - Update systemd units to use /opt/meshbay-common/venv/bin/ paths - TMDB token baked into node package at build time via QE/node.env - Fix package-lock.json sync for protobufjs override Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'packaging/rpm/meshbay-client.spec')
-rw-r--r--packaging/rpm/meshbay-client.spec53
1 files changed, 53 insertions, 0 deletions
diff --git a/packaging/rpm/meshbay-client.spec b/packaging/rpm/meshbay-client.spec
new file mode 100644
index 0000000..8788e67
--- /dev/null
+++ b/packaging/rpm/meshbay-client.spec
@@ -0,0 +1,53 @@
+Name: meshbay-client
+Version: __VERSION__
+Release: 1%{?dist}
+Summary: MeshBay — peer-to-peer file sharing, streaming and group chat
+License: AGPLv3+
+URL: https://meshbay.org
+
+AutoReqProv: no
+
+Requires: gtk3
+Requires: libnotify
+Requires: nss
+Requires: libXScrnSaver
+Requires: libXtst
+Requires: at-spi2-core
+Requires: libdrm
+Requires: mesa-libgbm
+Requires: alsa-lib
+Recommends: meshbay-node
+
+%description
+Desktop client for MeshBay. Connects to MeshBay nodes over WebRTC for
+file sharing, video streaming, and group chat. Includes Chromecast and
+Smart TV casting support.
+
+Installs the Electron application to /opt/meshbay-client/ and a Gnome
+launcher named "MeshBay".
+
+%install
+cp -a %{_staging_root}/* %{buildroot}/
+
+%post
+if [ -f /opt/meshbay-client/chrome-sandbox ]; then
+ chown root:root /opt/meshbay-client/chrome-sandbox
+ chmod 4755 /opt/meshbay-client/chrome-sandbox
+fi
+update-desktop-database /usr/share/applications 2>/dev/null || true
+gtk-update-icon-cache -f -t /usr/share/icons/hicolor 2>/dev/null || true
+
+%postun
+update-desktop-database /usr/share/applications 2>/dev/null || true
+gtk-update-icon-cache -f -t /usr/share/icons/hicolor 2>/dev/null || true
+
+%files
+/opt/meshbay-client
+/usr/bin/meshbay
+/usr/share/applications/meshbay.desktop
+/usr/share/icons/hicolor/*/apps/meshbay.png
+/usr/lib/firewalld/services/meshbay-cast.xml
+
+%changelog
+* Sun Aug 31 2026 MeshBay Team <team@meshbay.org> - %{version}-1
+- Initial packaging of the desktop client