File rosagram-docker.old of Package rosagram-docker
%global debug_package %{nil}
%define program rosagram
%define type docker
%define build_timestamp %(date +"%Y%m%d")
Name: %{program}-%{type}
Version: 6.6.2
Release: 99.1
Summary: Rosagram (Telegram fork) Docker builder for KDE Plasma 6
License: GPL-3.0
Group: Productivity/Networking/Instant Messenger
URL: https://telegram.org/
# Source0 - это ИСХОДНЫЙ RPM (правильный Linux способ!)
Source0: rosagram-6.6.2-1.1.src.rpm
Source1: %{name}.desktop
Source2: rosagram-build.sh
Source3: Dockerfile.rosagram
Source4: rosagram-wrapper.sh
Source5: rosagram.png
BuildArch: x86_64
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# BuildRequires для работы с SRPM
BuildRequires: rpm-build
BuildRequires: desktop-file-utils
BuildRequires: cpio
# Зависимости для работы
Requires: docker
Requires: docker-compose
Requires: bash
Requires: unzip
Requires: tar
Requires: xz
Requires: desktop-file-utils
Requires: hicolor-icon-theme
Requires: libX11-devel
Requires: libxcb-devel
Requires: libXtst-devel
Requires: libXi-devel
Requires: libXrandr-devel
Requires: libXfixes-devel
Requires: libXcursor-devel
Requires: libXinerama-devel
Requires: fontconfig
Requires: freetype2-devel
Requires: glib2-devel
Requires: gtk3
Requires: libdbus-1-3
Requires: wayland-devel
Requires: pulseaudio-utils
Requires: plasma6-workspace
Requires: plasma6-integration-plugin
Requires: kf6-kio
Requires: kf6-kded
Requires: libnotify
Requires: dbus-1
# Конфликты с оригинальным Telegram
Conflicts: telegram
Conflicts: telegram-desktop
Conflicts: rosagram
%description
Rosagram - форк Telegram Desktop для KDE Plasma 6, собираемый в Docker контейнере.
**Использует SRPM (Source RPM) как источник** — правильный Linux способ.
ПАКЕТ: rosagram-docker
ВЕРСИЯ: 6.6.2-99.1
ИСТОЧНИК: SRPM (rosagram-6.6.2-1.1.src.rpm)
%prep
# Распаковываем SRPM (правильный Linux способ)
%setup -q -c -T
rpm2cpio %{SOURCE0} | cpio -idmv
# Показываем, что распаковалось
echo "=== СОДЕРЖИМОЕ SRPM ==="
find . -type f -name "*.spec" -o -name "*.tar*" -o -name "*.patch" | while read file; do
echo " $file"
done
%build
# Пусто - сборка происходит при первом запуске
%install
# Создаем структуру директорий
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/applications
# ВАЖНО: Явно создаем ВСЮ структуру для иконок
mkdir -p %{buildroot}%{_datadir}/icons/
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/128x128/
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
mkdir -p %{buildroot}%{_sharedstatedir}/%{name}
mkdir -p %{buildroot}%{_sharedstatedir}/%{name}/source
mkdir -p %{buildroot}%{_sharedstatedir}/%{name}/docker-context
mkdir -p %{buildroot}%{_localstatedir}/log/%{name}
mkdir -p %{buildroot}/opt
mkdir -p %{buildroot}%{_docdir}/%{name}
# Копируем SRPM как источник
install -m 0644 %{SOURCE0} %{buildroot}%{_sharedstatedir}/%{name}/source/
# Копируем все распакованные исходники для Docker контекста
mkdir -p %{buildroot}%{_sharedstatedir}/%{name}/src
cp -r * %{buildroot}%{_sharedstatedir}/%{name}/src/ 2>/dev/null || true
# Копируем скрипт сборки
install -m 0755 %{SOURCE2} %{buildroot}%{_bindir}/rosagram-build
# Копируем Dockerfile
install -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/%{name}/Dockerfile.rosagram
# Копируем wrapper скрипт (основной запуск)
install -m 0755 %{SOURCE4} %{buildroot}%{_bindir}/rosagram
# Копируем desktop файл
install -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/applications/rosagram-docker.desktop
# Копируем иконку
install -m 0644 %{SOURCE5} %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/rosagram-docker.png
# Создаем symbolic link
ln -sf %{_bindir}/rosagram %{buildroot}%{_bindir}/rosagram-docker
# Создаем README
cat > %{buildroot}%{_docdir}/%{name}/README.SRPM << 'EOF'
ROSAGRAM DOCKER с SRPM ИСТОЧНИКОМ
===================================
Версия: 6.6.2-99.1
ПРАВИЛЬНЫЙ LINUX ПОДХОД:
------------------------
Этот пакет использует SRPM (Source RPM) как источник исходников.
ПРЕИМУЩЕСТВА:
✓ Стандартный формат - работает со всеми RPM инструментами
✓ Чистая структура - без WinRAR сюрпризов
СБОРКА:
-------
При первом запуске: rosagram
ЛОГИ:
-----
tail -f /var/log/rosagram-docker/build.log
EOF
# Создаем файл состояния
echo "not_installed" > %{buildroot}%{_sharedstatedir}/%{name}/status
# Валидация desktop файла
desktop-file-validate %{buildroot}%{_datadir}/applications/rosagram-docker.desktop || true
%post
# Обновление кэшей
if [ -x %{_bindir}/update-desktop-database ]; then
%{_bindir}/update-desktop-database &>/dev/null || :
fi
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi
if [ -x %{_bindir}/kbuildsycoca6 ]; then
%{_bindir}/kbuildsycoca6 --noincremental &>/dev/null || :
fi
echo ""
echo "==========================================================="
echo " Rosagram Docker с SRPM источником"
echo "==========================================================="
echo ""
echo "✅ Пакет успешно установлен!"
echo ""
echo "Для первого запуска выполните:"
echo " rosagram"
echo ""
echo "==========================================================="
%preun
if [ $1 -eq 0 ]; then
pkill -f rosagram 2>/dev/null || true
fi
%postun
if [ -x %{_bindir}/update-desktop-database ]; then
%{_bindir}/update-desktop-database &>/dev/null || :
fi
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi
if [ -x %{_bindir}/kbuildsycoca6 ]; then
%{_bindir}/kbuildsycoca6 --noincremental &>/dev/null || :
fi
%files
%defattr(-,root,root)
%{_bindir}/rosagram
%{_bindir}/rosagram-docker
%{_bindir}/rosagram-build
%{_datadir}/applications/rosagram-docker.desktop
# Явно указываем владение ВСЕМИ директориями иконок
%dir %{_datadir}/icons/
%dir %{_datadir}/icons/hicolor/
%dir %{_datadir}/icons/hicolor/128x128/
%dir %{_datadir}/icons/hicolor/128x128/apps/
%{_datadir}/icons/hicolor/128x128/apps/rosagram-docker.png
%dir %{_sysconfdir}/rosagram-docker
%config(noreplace) %{_sysconfdir}/rosagram-docker/Dockerfile.rosagram
%dir %{_sharedstatedir}/rosagram-docker
%dir %{_sharedstatedir}/rosagram-docker/source
%{_sharedstatedir}/rosagram-docker/source/rosagram-6.6.2-1.1.src.rpm
%dir %{_sharedstatedir}/rosagram-docker/src
%{_sharedstatedir}/rosagram-docker/src/
%{_sharedstatedir}/rosagram-docker/status
%dir %{_localstatedir}/log/rosagram-docker
%ghost %{_localstatedir}/log/rosagram-docker/build.log
%ghost %{_localstatedir}/log/rosagram-docker/rosagram.log
%dir %{_docdir}/rosagram-docker
%doc %{_docdir}/rosagram-docker/README.SRPM
%changelog
* Tue Mar 17 2026 Alex S.Shubin <renard.corp@hotmail.com> 6.6.2-99.1
- Исправлены права на директории иконок
- Явно указано владение /usr/share/icons/hicolor/
- Финальная версия с SRPM источником