%global debug_package %{nil} %global app_version 1.2.4 Name: tiny-rdm Version: %{app_version} Release: 1%{?dist} Summary: A modern lightweight cross-platform Redis desktop client License: GPL-3.0 URL: https://github.com/tiny-craft/tiny-rdm # 确保 Source0 的文件名与你放入 SOURCES 目录下的文件名一致 Source0: %{name}-%{version}.tar.gz Source1: appicon.png # 构建依赖 # 根据 Wails 官方文档,这些是 Fedora 上构建所需的依赖 BuildRequires: git-core BuildRequires: golang BuildRequires: nodejs >= 20 BuildRequires: gcc BuildRequires: pkg-config BuildRequires: webkit2gtk4.0-devel BuildRequires: gtk3-devel BuildRequires: glib2-devel BuildRequires: libappindicator-gtk3-devel %description Tiny RDM is a modern lightweight cross-platform Redis desktop client, supports Mac, Windows and Linux. Based on Wails (Go) and Vue. %prep # 解压源码,-n 指定解压后的目录名 %autosetup -n %{name}-%{version} %build # 设置一个临时的 GOPATH 并将其添加到 PATH # 这确保了构建过程是自包含的,不依赖用户环境下的 go 工具 export GOPATH=%{_builddir}/go export PATH=$GOPATH/bin:$PATH # 在构建过程中安装 wails 工具,确保构建的可复现性 # 这条命令会将 wails 安装到 $GOPATH/bin 目录下 go install github.com/wailsapp/wails/v2/cmd/wails@latest # 安装前端依赖 npm install --prefix ./frontend # 使用 Wails 构建应用 # -ldflags "-s -w" 用于生成更小的二进制文件 # -trimpath 移除路径信息,增强可复现性 wails build -ldflags "-s -w" -trimpath %install # 创建目标目录 install -d %{buildroot}%{_bindir} install -d %{buildroot}%{_datadir}/applications install -d %{buildroot}%{_datadir}/icons/hicolor/256x256/apps # 安装主程序 install -p -m 0755 "build/bin/Tiny RDM" %{buildroot}%{_bindir}/%{name} # 安装图标 install -p -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/%{name}.png # 创建并安装 .desktop 文件 (用于应用菜单) cat << EOF > %{name}.desktop [Desktop Entry] Name=Tiny RDM Comment=A modern lightweight cross-platform Redis desktop client Exec=env GDK_BACKEND=x11 WEBKIT_DISABLE_COMPOSITING_MODE=1 %{name} Icon=%{name} Terminal=false Type=Application Categories=Development;Database; EOF install -p -m 0644 %{name}.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop %files %license LICENSE %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/256x256/apps/%{name}.png %changelog * Fri Aug 08 2025 Your Name - 1.2.4-1 - Initial RPM package