### ref: https://github.com/gitbutlerapp/gitbutler/blob/master/.github/workflows/publish.yaml ### Revise by Gemini Name: gitbutler Version: 0.19.13 Release: 1%{?dist} Summary: Modern Git-based version control interface License: FSL-1.1-MIT URL: https://github.com/gitbutlerapp/gitbutler Source0: %{url}/archive/refs/tags/release/%{version}.tar.gz BuildRequires: cargo-rpm-macros >= 24 BuildRequires: gcc, gcc-c++, clang, cmake, git, lld, sccache ### Linux Tauri and system dependencies specified in DEVELOPMENT.md BuildRequires: nodejs >= 20, npm BuildRequires: webkit2gtk4.1-devel libxdo-devel openssl-devel libayatana-appindicator3-devel BuildRequires: librsvg2-devel alsa-lib-devel fontconfig-devel wayland-devel libxkbcommon-x11-devel %description GitButler is a modern Git-based version control interface with both a GUI and CLI built from the ground up for AI-powered workflows. %prep %autosetup -n gitbutler-%{version} %build export CARGO_HOME=.cargo export RUSTFLAGS="-C link-arg=-fuse-ld=lld" export RUSTC_WRAPPER=%{_bindir}/sccache # Set up pnpm via corepack as instructed by the project's guide corepack enable corepack prepare pnpm@latest --activate # Install Node.js frontend dependencies pnpm install --frozen-lockfile # Build the production release using Tauri pnpm tauri build --features devtools,builtin-but,disable-auto-updates --config crates/gitbutler-tauri/tauri.conf.nightly-local.json %install # Install the main tauri desktop binary install -Dpm755 src-tauri/target/release/gitbutler-tauri %{buildroot}%{_bindir}/gitbutler ## Desktop file mkdir -p %{buildroot}%{_datadir}/applications cat > %{buildroot}%{_datadir}/applications/gitbutler.desktop <<'EOF' [Desktop Entry] Name=GitButler GenericName=Git Client Comment=Modern Git-based version control interface Exec=gitbutler %U Icon=gitbutler Type=Application StartupNotify=true Categories=Utility;Development;RevisionControl; MimeType=x-scheme-handler/gitbutler; Keywords=git;gitbutler;version-control; StartupWMClass=gitbutler-tauri EOF ### App Icon (Tauri populates icons in the src-tauri/icons directory during setup) install -Dpm644 src-tauri/icons/128x128.png \ %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/gitbutler.png %files %license LICENSE.md %{_bindir}/gitbutler %{_datadir}/applications/gitbutler.desktop %{_datadir}/icons/hicolor/128x128/apps/gitbutler.png %changelog %autochangelog