From deee67755991994742ef144400857dd5f6b8aafa Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Sun, 9 Aug 2026 05:19:13 +0200 Subject: chore: add RPM/DEB packaging artifacts — 5.10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 3 packages: python3-meshbay-common (dep), meshbay-hub, meshbay-node. RPM: spec files with pre/post scriptlets (useradd, systemd macros). DEB: DEBIAN/control + postinst for hub, control for node + common. Systemd: hub.service (system, security hardening) + node.service (user template @%i, EnvironmentFile for MESHBAY_UNLOCK_KEY). packaging/README.md: build + install instructions. Co-Authored-By: Claude Sonnet 4.6 (1M context) --- packaging/rpm/meshbay-hub.spec | 78 +++++++++++++++++++++++++++++++ packaging/rpm/meshbay-node.spec | 57 ++++++++++++++++++++++ packaging/rpm/python3-meshbay-common.spec | 42 +++++++++++++++++ 3 files changed, 177 insertions(+) create mode 100644 packaging/rpm/meshbay-hub.spec create mode 100644 packaging/rpm/meshbay-node.spec create mode 100644 packaging/rpm/python3-meshbay-common.spec (limited to 'packaging/rpm') diff --git a/packaging/rpm/meshbay-hub.spec b/packaging/rpm/meshbay-hub.spec new file mode 100644 index 0000000..f68c3bf --- /dev/null +++ b/packaging/rpm/meshbay-hub.spec @@ -0,0 +1,78 @@ +Name: meshbay-hub +Version: 0.1.0 +Release: 1%{?dist} +Summary: MeshBay Hub — identity authority and group registry server +License: AGPLv3+ +URL: https://meshbay.org +Source0: %{name}-%{version}.tar.gz + +BuildArch: noarch +BuildRequires: python3-devel >= 3.12 +BuildRequires: python3-pip +BuildRequires: python3-hatchling + +Requires: python3 >= 3.12 +Requires: python3-meshbay-common = %{version} +Requires: python3-fastapi +Requires: python3-uvicorn +Requires: python3-sqlalchemy >= 2.0 +Requires: python3-alembic +Requires: python3-asyncpg +Requires: python3-pyjwt +Requires: python3-blake3 +Requires: python3-slowapi +Requires: postgresql-server + +%description +MeshBay Hub provides identity management, group registry, +GEK bundle distribution, and coordination for MeshBay nodes. +Runs as a systemd service behind Caddy (HTTPS). + +%prep +%autosetup + +%build +%{python3} -m pip wheel --no-deps --wheel-dir dist . + +%install +%{python3} -m pip install --root %{buildroot} --no-index --find-links dist meshbay-hub + +# systemd service +install -Dm644 packaging/systemd/meshbay-hub.service \ + %{buildroot}%{_unitdir}/meshbay-hub.service + +# Config file template +install -Dm644 packaging/conf/hub.toml.example \ + %{buildroot}%{_sysconfdir}/meshbay/hub.toml.example + +# Data directory +install -d %{buildroot}%{_sharedstatedir}/meshbay/hub + +%pre +getent group meshbay >/dev/null || groupadd -r meshbay +getent passwd meshbay >/dev/null || \ + useradd -r -g meshbay -d %{_sharedstatedir}/meshbay -s /sbin/nologin \ + -c "MeshBay service account" meshbay + +%post +%systemd_post meshbay-hub.service + +%preun +%systemd_preun meshbay-hub.service + +%postun +%systemd_postun_with_restart meshbay-hub.service + +%files +%license LICENSE +%doc README.md +%{python3_sitelib}/meshbay_hub/ +%{python3_sitelib}/meshbay_hub-*.dist-info/ +%{_bindir}/meshbay-hub +%{_unitdir}/meshbay-hub.service +%config(noreplace) %{_sysconfdir}/meshbay/hub.toml.example +%dir %attr(750, meshbay, meshbay) %{_sharedstatedir}/meshbay/hub + +%changelog +* Sat Aug 09 2026 MeshBay Team - 0.1.0-1 +- Initial package diff --git a/packaging/rpm/meshbay-node.spec b/packaging/rpm/meshbay-node.spec new file mode 100644 index 0000000..5604f4a --- /dev/null +++ b/packaging/rpm/meshbay-node.spec @@ -0,0 +1,57 @@ +Name: meshbay-node +Version: 0.1.0 +Release: 1%{?dist} +Summary: MeshBay Node — local file host, streaming server, and group daemon +License: AGPLv3+ +URL: https://meshbay.org +Source0: %{name}-%{version}.tar.gz + +BuildArch: noarch +BuildRequires: python3-devel >= 3.12 +BuildRequires: python3-pip +BuildRequires: python3-hatchling + +Requires: python3 >= 3.12 +Requires: python3-meshbay-common = %{version} +Requires: python3-fastapi +Requires: python3-uvicorn +Requires: python3-httpx +Requires: python3-watchdog +Requires: python3-aioquic >= 1.0 +Requires: python3-aioice +Requires: python3-pyjwt +Requires: python3-blake3 +Requires: python3-msgpack +Requires: python3-zstandard +# Optional: ffmpeg for HLS streaming +Recommends: ffmpeg + +%description +MeshBay Node indexes local directories and serves encrypted files +to authenticated group members over QUIC (MNP v2) or TCP+TLS (MNP v1). +Includes a local web UI at http://localhost:18000. + +%prep +%autosetup + +%build +%{python3} -m pip wheel --no-deps --wheel-dir dist . + +%install +%{python3} -m pip install --root %{buildroot} --no-index --find-links dist meshbay-node + +# systemd user service (template) +install -Dm644 packaging/systemd/meshbay-node.service \ + %{buildroot}%{_userunitdir}/meshbay-node.service + +%files +%license LICENSE +%doc README.md +%{python3_sitelib}/meshbay_node/ +%{python3_sitelib}/meshbay_node-*.dist-info/ +%{_bindir}/meshbay-node +%{_userunitdir}/meshbay-node.service + +%changelog +* Sat Aug 09 2026 MeshBay Team - 0.1.0-1 +- Initial package diff --git a/packaging/rpm/python3-meshbay-common.spec b/packaging/rpm/python3-meshbay-common.spec new file mode 100644 index 0000000..7687e90 --- /dev/null +++ b/packaging/rpm/python3-meshbay-common.spec @@ -0,0 +1,42 @@ +Name: python3-meshbay-common +Version: 0.1.0 +Release: 1%{?dist} +Summary: MeshBay shared cryptographic primitives and protocol types +License: AGPLv3+ +URL: https://meshbay.org +Source0: meshbay-common-%{version}.tar.gz + +BuildArch: noarch +BuildRequires: python3-devel >= 3.12 +BuildRequires: python3-pip +BuildRequires: python3-hatchling + +Requires: python3 >= 3.12 +Requires: python3-cryptography >= 43.0 +Requires: python3-pyjwt >= 2.9 +Requires: python3-blake3 >= 1.0 +Requires: python3-msgpack >= 1.1 +Requires: python3-zstandard >= 0.23 + +%description +Shared library for MeshBay hub and node packages. +Provides: Ed25519/X25519 operations, GEK wrap/unwrap, chunk +encryption/signing, keystore AES-256-GCM, and MNP protocol types. + +%prep +%autosetup -n meshbay-common-%{version} + +%build +%{python3} -m pip wheel --no-deps --wheel-dir dist . + +%install +%{python3} -m pip install --root %{buildroot} --no-index --find-links dist meshbay-common + +%files +%license LICENSE +%{python3_sitelib}/meshbay_common/ +%{python3_sitelib}/meshbay_common-*.dist-info/ + +%changelog +* Sat Aug 09 2026 MeshBay Team - 0.1.0-1 +- Initial package -- cgit v1.2.3