%global debug_package %{nil} %global rust_toolchain rust >= 1.80.0 Name: ludusavi Version: 0.31.0 Release: 1%{?dist} Summary: Tool for backing up your PC video game save data License: MIT URL: https://github.com/mtkennerly/ludusavi Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: %{rust_toolchain} BuildRequires: cargo BuildRequires: pkgconf-pkg-config BuildRequires: gtk3-devel BuildRequires: libxcb-devel BuildRequires: libX11-devel BuildRequires: desktop-file-utils BuildRequires: appstream Requires: hicolor-icon-theme Recommends: rclone %description Ludusavi is a tool for backing up your PC video game save data, written in Rust. It is cross-platform and supports multiple game stores. Features: - Ability to back up data from more than 19,000 games plus your own custom entries. - Backup and restore for Steam as well as other game libraries. - Preview of the backup/restore before actually performing it. - Both a graphical interface and command line interface for scripting. - Support for saves stored as files, Windows registry, and Proton/Steam. %prep %autosetup # Remove deprecated Encoding key from desktop file to satisfy desktop-file-validate sed -i '/^Encoding=/d' assets/linux/com.mtkennerly.%{name}.desktop %build cargo build --release %{?_smp_flags} %install # Main binary install -D -p -m 0755 target/release/%{name} %{buildroot}%{_bindir}/%{name} # Desktop entry & AppStream metainfo install -D -p -m 0644 assets/linux/com.mtkennerly.%{name}.desktop %{buildroot}%{_datadir}/applications/com.mtkennerly.%{name}.desktop install -D -p -m 0644 assets/linux/com.mtkennerly.%{name}.metainfo.xml %{buildroot}%{_metainfodir}/com.mtkennerly.%{name}.metainfo.xml # Icons install -D -p -m 0644 assets/icon.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/com.mtkennerly.%{name}.svg install -D -p -m 0644 assets/icon.png %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/com.mtkennerly.%{name}.png # Shell completions generated by the compiled binary mkdir -p %{buildroot}%{_datadir}/bash-completion/completions %{buildroot}%{_bindir}/%{name} complete bash > %{buildroot}%{_datadir}/bash-completion/completions/%{name} mkdir -p %{buildroot}%{_datadir}/fish/vendor_completions.d %{buildroot}%{_bindir}/%{name} complete fish > %{buildroot}%{_datadir}/fish/vendor_completions.d/%{name}.fish mkdir -p %{buildroot}%{_datadir}/zsh/site-functions %{buildroot}%{_bindir}/%{name} complete zsh > %{buildroot}%{_datadir}/zsh/site-functions/_%{name} %check desktop-file-validate %{buildroot}%{_datadir}/applications/com.mtkennerly.%{name}.desktop appstreamcli validate --no-net %{buildroot}%{_metainfodir}/com.mtkennerly.%{name}.metainfo.xml %files %license LICENSE %doc README.md CHANGELOG.md %{_bindir}/%{name} %{_datadir}/applications/com.mtkennerly.%{name}.desktop %{_metainfodir}/com.mtkennerly.%{name}.metainfo.xml %{_datadir}/icons/hicolor/scalable/apps/com.mtkennerly.%{name}.svg %{_datadir}/icons/hicolor/64x64/apps/com.mtkennerly.%{name}.png %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions %{_datadir}/bash-completion/completions/%{name} %dir %{_datadir}/fish %dir %{_datadir}/fish/vendor_completions.d %{_datadir}/fish/vendor_completions.d/%{name}.fish %dir %{_datadir}/zsh %dir %{_datadir}/zsh/site-functions %{_datadir}/zsh/site-functions/_%{name} %changelog * Mon Oct 12 2026 boobaa - 0.31.0-1 - Initial package for Fedora COPR