From 8d5c564e75ad2928e77ea66decc979366ca5ccd5 Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Mon, 31 Aug 2026 10:49:45 +0200 Subject: 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 --- packaging/deb/meshbay-common/DEBIAN/control | 14 ++++++++++++++ packaging/deb/meshbay-common/DEBIAN/postinst | 15 +++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 packaging/deb/meshbay-common/DEBIAN/control create mode 100644 packaging/deb/meshbay-common/DEBIAN/postinst (limited to 'packaging/deb/meshbay-common') diff --git a/packaging/deb/meshbay-common/DEBIAN/control b/packaging/deb/meshbay-common/DEBIAN/control new file mode 100644 index 0000000..4089f4b --- /dev/null +++ b/packaging/deb/meshbay-common/DEBIAN/control @@ -0,0 +1,14 @@ +Package: meshbay-common +Version: __VERSION__ +Section: python +Priority: optional +Architecture: __ARCH__ +Maintainer: MeshBay Team +Homepage: https://meshbay.org +Depends: python3 (>= 3.12) +Description: MeshBay shared Python runtime and libraries + Provides the shared Python virtual environment, cryptographic primitives + (Ed25519, X25519, GEK wrap/unwrap, ChaCha20-Poly1305), protocol types (MNP, + MHP), and all pip dependencies used by meshbay-hub and meshbay-node. + . + Installs to /opt/meshbay-common/venv/. diff --git a/packaging/deb/meshbay-common/DEBIAN/postinst b/packaging/deb/meshbay-common/DEBIAN/postinst new file mode 100644 index 0000000..d675c0c --- /dev/null +++ b/packaging/deb/meshbay-common/DEBIAN/postinst @@ -0,0 +1,15 @@ +#!/bin/sh +set -e + +case "$1" in + configure) + # Recompile bytecode for the installed Python version. + # The venv was built on the build machine; .pyc files may reference + # a different path or Python micro-version. + if command -v py3compile >/dev/null 2>&1; then + py3compile /opt/meshbay-common/venv/lib/ 2>/dev/null || true + fi + ;; +esac + +#DEBHELPER# -- cgit v1.2.3