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 источником
openSUSE Build Service is sponsored by