# Original project: https://github.com/RusNor/StartWine-Launcher %global debug_package %{nil} Name: startwine Version: 422 Release: 1%{?dist} Summary: Windows application launcher for Linux License: GPL-3.0-or-later URL: https://github.com/RusNor/StartWine-Launcher Source0: StartWine_v%{version}.tar.gz Source1: ru.launcher.StartWine.desktop # Пакет не требует сборки, так как это портативное приложение BuildArch: noarch # Единственная зависимость для работы скрипта запуска Requires: bash Requires: coreutils # Рекомендуемые зависимости (будут установлены автоматически, если доступны) Recommends: python3 Recommends: python3-psutil Recommends: python3-gobject Recommends: python3-dbus Recommends: python3-pillow Recommends: python3-requests Recommends: gtk4 Recommends: fuse Recommends: curl Recommends: yad Recommends: zenity %description StartWine is a Windows application launcher for GNU/Linux operating systems. It includes many features, extensions, and fixes to improve performance, visuals, and usability. %prep %autosetup -n StartWine-Launcher-StartWine_v%{version} ln -sf data/img img %build # Nothing to build - we're packaging a portable application %install # Создаём директории mkdir -p %{buildroot}%{_datadir}/startwine mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_datadir}/applications mkdir -p %{buildroot}%{_datadir}/pixmaps mkdir -p %{buildroot}%{_datadir}/icons/hicolor/256x256/apps # Копируем все файлы приложения cp -r data/* %{buildroot}%{_datadir}/startwine/ # Создаём скрипт запуска cat > %{buildroot}%{_bindir}/startwine << 'EOF' #!/bin/bash USER_DATA_DIR="$HOME/.local/share/StartWine" SYSTEM_DATA_DIR="/usr/share/startwine" # При первом запуске создаём структуру и символические ссылки if [ ! -d "$USER_DATA_DIR" ]; then mkdir -p "$USER_DATA_DIR" # Создаём символические ссылки на все файлы и директории for item in "$SYSTEM_DATA_DIR"/*; do ln -sf "$item" "$USER_DATA_DIR/" done # Создаём ссылки на Python-скрипты в ~/.local/bin mkdir -p "$HOME/.local/bin" for script in "$USER_DATA_DIR/scripts/"*.py; do chmod +x "$script" ln -sf "$script" "$HOME/.local/bin/$(basename "$script")" done # Делаем исполняемыми все скрипты chmod +x "$USER_DATA_DIR"/scripts/*.sh 2>/dev/null || true chmod +x "$USER_DATA_DIR"/scripts/*.py 2>/dev/null || true # Добавляем ~/.local/bin в PATH, если ещё не добавлен if [[ ":$PATH:" != *":$HOME/.local/bin:"* ]]; then echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$HOME/.bashrc" fi fi # Запускаем приложение if [ -f "$USER_DATA_DIR/startwine.sh" ]; then exec "$USER_DATA_DIR/startwine.sh" "$@" elif [ -f "$USER_DATA_DIR/startwine.py" ]; then exec python3 "$USER_DATA_DIR/startwine.py" "$@" else echo "Error: StartWine launcher not found" exit 1 fi EOF chmod 755 %{buildroot}%{_bindir}/startwine # Иконка для системы if [ -f data/img/gui_icons/sw_icon.png ]; then install -Dm644 data/img/gui_icons/sw_icon.png %{buildroot}%{_datadir}/pixmaps/startwine.png install -Dm644 data/img/gui_icons/sw_icon.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/startwine.png fi # .desktop файл install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/applications/ru.launcher.StartWine.desktop # Исправляем путь к иконке в .desktop файле sed -i 's|Icon=.*|Icon=startwine|' %{buildroot}%{_datadir}/applications/ru.launcher.StartWine.desktop %post # Обновляем кэш иконок (если система использует его) if [ -x /usr/bin/gtk-update-icon-cache ]; then /usr/bin/gtk-update-icon-cache -q /usr/share/icons/hicolor 2>/dev/null || true fi update-desktop-database -q 2>/dev/null || true %postun # При удалении пакета не удаляем пользовательские данные # Пользователь сам решит, удалять ли ~/.local/share/StartWine if [ $1 -eq 0 ]; then update-desktop-database -q 2>/dev/null || true fi %files %{_bindir}/startwine %{_datadir}/startwine/ %{_datadir}/applications/ru.launcher.StartWine.desktop %{_datadir}/pixmaps/startwine.png %{_datadir}/icons/hicolor/256x256/apps/startwine.png %license LICENSE %doc README.md %changelog * Tue Jun 09 2026 Wik217 - 422-1 - Initial RPM release for Fedora - Portable application that installs to /usr/share/startwine - First run creates symlinks in ~/.local/share/StartWine - No compilation required (BuildArch: noarch)