# vim: syntax=spec Name: swai Version: 10.2.4 Release: 1%{?dist} Summary: Runtime that turns web apps into native feeling electron based apps %global debug_package %{nil} License: GPL-3.0-or-later URL: https://gitlab.com/stillhq/stillOS/swai Source0: swai-32a6313f.tar.gz Requires: bash Requires: python3 Requires: systemd BuildRequires: nodejs >= 22.12 BuildRequires: npm BuildRequires: make BuildRequires: git %description Runtime that turns web apps into native feeling electron based apps %prep %setup -T -b 0 -q -n swai %build echo "Running npm install..." # Navigate into the extracted source directory cd %{_builddir}/%{name}-master %install # remove testing file rm install-local.sh # Change DRM electron dependency to regular electron on non-x86 %ifnarch x86_64 sed -i 's/github:castlabs\/electron-releases#v\(.*\)+wvcus/\^\1/' package.json %endif # Run npm install to generate node_modules npm install # Electron uses this native module only while downloading and extracting its # runtime during npm install. It bundles ELF modules for many architectures and # libc variants; leaving those install-time helpers in the RPM payload makes # automatic dependency generation require foreign loaders and musl. The # downloaded Electron runtime does not import this package at runtime. rm -rf node_modules/@electron-internal/extract-zip # Prevent error for the shabang in rpm %ifarch x86_64 sed -i 's|^#!/usr/bin/env python$|#!/usr/bin/python3|' node_modules/electron/vmp-resign.py %endif # Removing gitignore to prevent unknown file error rm -rf .gitignore echo "Installing files..." # Create destination directories in the build root install -d %{buildroot}%{_datadir} install -d %{buildroot}%{_bindir} # Copy the application directory (including node_modules) # Using 'cp -a' to preserve permissions and symbolic links cp -a %{_builddir}/swai-master %{buildroot}%{_datadir}/%{name} # Install swai.sh to /bin/swai install -m 755 %{_builddir}/swai-master/swai.sh %{buildroot}%{_bindir}/swai %files %dir %{_datadir}/%{name} %{_datadir}/%{name}/* %{_bindir}/swai %changelog * Tue Jul 21 2026 Cameron - 10.2.4-1 - Fix first launches after Widevine installation in new ecosystem profiles - Relaunch Linux apps in a clean transient user service * Wed Jul 15 2026 Cameron - 10.2.3-1 - Install and register Widevine in each persistent SWAI ecosystem profile - Restart after Linux CDM updates so DRM is active before web apps launch - Restore full Apple Music playback instead of preview-only fallback * Tue Jul 14 2026 Cameron - 10.2.2-3 - Restore Electron runtime download for Electron 42 and newer - Pass the parent window to navigation handlers * Sat Jul 11 2026 Cameron - 10.2.1-2 - Remove Electron's install-only, multi-architecture extraction helpers * Fri Jul 10 2026 Cameron - 10.2.1-1 - Add native status pages, offline PWA support, and renderer recovery - Replace temporary-file ecosystem handoff with D-Bus IPC - Add runtime manifest integration and safer external URL handling - Update Castlabs Electron and Linux media application identity - Add automated navigation, configuration, manifest, and IPC tests * Sun May 04 2025 Cameron - 0.1.0-1 - Initial RPM package