## START: Set by rpmautospec ## (rpmautospec version 0.8.4) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 4; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec Name: livekit-egress Version: 1.13.0 Release: %autorelease Summary: Export and record WebRTC sessions and tracks License: MIT URL: https://github.com/livekit/egress Source0: %{url}/archive/refs/tags/v%{version}.tar.gz Source1: %{name}.sysusers.conf Source2: %{name}.service Patch: 0000-replace-faac.patch BuildRequires: pnpm BuildRequires: glib2-devel BuildRequires: gstreamer1-devel BuildRequires: gstreamer1-plugins-bad-free-devel BuildRequires: golang BuildRequires: systemd-rpm-macros Requires: chromium Requires: gstreamer1-plugins-base Requires: gstreamer1-plugins-good Requires: gstreamer1-plugins-bad-free Requires: gstreamer1-plugins-bad-free-extras Requires: gstreamer1-libav # Core audio infrastructure hooks: Requires: pipewire-utils Requires: pulseaudio-utils # Add the headless X-server display engine: Requires: xorg-x11-server-Xvfb # Add base fonts so Chrome doesn't crash on text rendering: Requires: google-noto-sans-fonts %description WebRTC is fantastic for last-mile media delivery, but interoperability with other services can be challenging. An application may want to do things like store a session for future playback, relay a stream to a CDN, or process a track through a transcription service – workflows where media travels through a different system or protocol. LiveKit Egress is the solution to these interoperability challenges. It provides a consistent set of APIs that gives you universal export of your LiveKit sessions and tracks. %prep %setup -q -n egress-%{version} %patch -P 0 -p1 -b .replace-faac go mod download %build pushd template-default pnpm install pnpm build popd mkdir -p cmd/server/templates cp -r template-default/build/* cmd/server/templates/ go build -a -o ./bin/%{name} ./cmd/server %install install -m 755 -d %{buildroot}%{_bindir} install -m 755 -d %{buildroot}%{_sysusersdir} install -m 755 -d %{buildroot}%{_sysconfdir}/%{name} install -m 755 -d %{buildroot}%{_userunitdir} install -m 755 -d %{buildroot}%{_sharedstatedir}/%{name} install -D -m 755 ./bin/%{name} %{buildroot}%{_bindir}/%{name} install -D -m 755 ./test/config-sample.yaml %{buildroot}%{_sysconfdir}/%{name}/config.yaml ln -s %{_bindir}/%{name} %{buildroot}%{_bindir}/egress install -m 644 %{S:1} %{buildroot}%{_sysusersdir}/%{name}.conf install -m 644 %{S:2} %{buildroot}%{_userunitdir}/%{name}.service %pre %sysusers_create_compat %{S:1} if [ ! -e /home/egress ]; then ln -sf %{_sharedstatedir}/%{name} /home/egress fi %post %systemd_post %{name}.service # Force Fedora to spawn the livekit-egress user session and PipeWire bus on boot loginctl enable-linger livekit-egress %preun %systemd_preun %{name}.service %postun %systemd_postun_with_restart %{name}.service if [ $1 -eq 0 ]; then if [ -L /home/egress ]; then rm -f /home/egress fi fi %files %license LICENSE %attr(755, -, -) %{_bindir}/%{name} %{_bindir}/egress %config(noreplace) %attr(-,%{name},%{name}) %{_sysconfdir}/%{name}/config.yaml %dir %attr(755, %{name}, %{name}) %{_sharedstatedir}/%{name}/ %{_sysusersdir}/%{name}.conf %{_userunitdir}/%{name}.service %changelog ## START: Generated by rpmautospec * Mon Jun 01 2026 Grillo del Mal - 1.13.0-4 - Use symlinks instead of weird systemd stuff * Sun May 31 2026 Grillo del Mal - 1.13.0-3 - Patch out faac * Sun May 31 2026 Grillo del Mal - 1.13.0-2 - Move egress to a lingering user service * Fri May 29 2026 Grillo del Mal - 1.13.0-1 - Initial commit ## END: Generated by rpmautospec