aboutsummaryrefslogtreecommitdiffstats
path: root/packaging/rpm
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/rpm')
-rw-r--r--packaging/rpm/meshbay-hub.spec78
-rw-r--r--packaging/rpm/meshbay-node.spec57
-rw-r--r--packaging/rpm/python3-meshbay-common.spec42
3 files changed, 177 insertions, 0 deletions
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 <team@meshbay.org> - 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 <team@meshbay.org> - 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 <team@meshbay.org> - 0.1.0-1
+- Initial package