Name: meshbay-node Version: 0.5.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 * Sun Aug 16 2026 MeshBay Team - 0.5.0-1 - Abandoned video streams release their transcode slot at once - Background tasks are held, so none is collected mid-flight losing a slot - ffmpeg is reaped without deadlocking on its own unread output - Chunk replies wait for room on the channel instead of queueing 8 MB - Chat history pages backwards; upload names accept any script, and errors name the file * Sun Aug 16 2026 MeshBay Team - 0.4.0-1 - No functional change; released in step with the other packages * Sat Aug 15 2026 MeshBay Team - 0.3.0-1 - Video streaming is paced by the client; stream_stop frees the transcode slot - Operator can remove an empty directory and revoke a member over MNP - meshbay-node group add: host another of your hub groups - admin_pk_ed25519 removed; the roster is the only source of node authority * Fri Aug 14 2026 MeshBay Team - 0.2.0-1 - Node wraps the group key itself; members are admitted from a local roster - Identity keys are per node, created at first contact and pinned there - Operator surface over SSH: operator pair, member list|invite|revoke|unpin - Unauthenticated HTTP file API and TCP transport removed (C1, C6) * Sat Aug 09 2026 MeshBay Team - 0.1.0-1 - Initial package