File wps-office-docker.spec of Package wps-office-docker
%global debug_package %{nil}
%global _enable_debug_packages 0
%global _unpackaged_files_terminate_build 0
%global _build_id_links none
%define _missing_build_ids_terminate_build 0
%define program wps-office
%define type docker
%define build_timestamp %(date +"%Y%m%d")
Name: %{program}-%{type}
Version: 12.1.2.23578
Release: 78.1
Summary: WPS Office Docker builder for KDE Plasma 6
License: SUSE-NonFree
Group: Productivity/Office/Suite
URL: http://wps-community.org/
Source0: wps-office-12.1.2.23578-46.2.src.rpm
Source1: %{name}.desktop
Source2: wps-office-build.sh
Source3: Dockerfile.rosa
Source4: wps-office-wrapper.sh
Source5: wps.png
BuildArch: x86_64
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: rpm-build
BuildRequires: desktop-file-utils
BuildRequires: cpio
BuildRequires: chrpath
BuildRequires: fontconfig
BuildRequires: hicolor-icon-theme
BuildRequires: fdupes
Requires: docker
Requires: docker-compose
Requires: bash
Requires: desktop-file-utils
Requires: hicolor-icon-theme
Requires: libX11-devel
Requires: libxcb-devel
Requires: wayland-devel
Requires: plasma6-workspace
Requires: plasma6-integration-plugin
Requires: python3
Requires: libbz2.so.1
Requires: libc++1
%description
WPS Office Docker - офисный пакет для Linux.
Собирается в Docker контейнере (Dockerfile.rosa), работает от обычного пользователя.
%prep
%setup -q -c -T
rpm2cpio %{SOURCE0} | cpio -idmv 2>/dev/null || true
%build
# Пусто
%install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/applications
# Создаем структуру для иконок
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/16x16/apps
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/32x32/apps
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/64x64/apps
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/128x128/apps
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/256x256/apps
# Копируем иконку в основной размер (исправлено - добавлен путь назначения)
install -m 0644 %{SOURCE5} %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/wps-office-docker.png
# Создаем симлинки для других размеров
for size in 16 22 24 32 48 64 96 256; do
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps
ln -sf ../../128x128/apps/wps-office-docker.png %{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/wps-office-docker.png
done
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
mkdir -p %{buildroot}%{_sharedstatedir}/%{name}
mkdir -p %{buildroot}%{_sharedstatedir}/%{name}/source
mkdir -p %{buildroot}%{_sharedstatedir}/%{name}/src
mkdir -p %{buildroot}%{_localstatedir}/log/%{name}
mkdir -p %{buildroot}/opt
mkdir -p %{buildroot}%{_docdir}/%{name}
install -m 0644 %{SOURCE0} %{buildroot}%{_sharedstatedir}/%{name}/source/
if [ -d "%{_builddir}/%{name}-%{version}" ]; then
cp -r %{_builddir}/%{name}-%{version}/* %{buildroot}%{_sharedstatedir}/%{name}/src/ 2>/dev/null || true
fi
install -m 0755 %{SOURCE2} %{buildroot}%{_bindir}/wps-office-build
install -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/%{name}/Dockerfile.rosa
cat > %{buildroot}%{_bindir}/wps-office << 'EOF'
#!/bin/bash
WPS_DIR="/opt/wps-office"
LOG_DIR="/var/log/wps-office-docker"
LOG_FILE="$LOG_DIR/wps.log"
STATUS_FILE="/var/lib/wps-office-docker/status"
BUILD_SCRIPT="/usr/bin/wps-office-build"
if [ "$EUID" -eq 0 ]; then
echo "❌ Запуск WPS Office от root запрещен!"
exit 1
fi
[ ! -d "$LOG_DIR" ] && sudo mkdir -p "$LOG_DIR" 2>/dev/null || mkdir -p "$LOG_DIR"
log() { echo "[$(date '+%%Y-%%m-%%d %%H:%%M:%%S')] $1"; }
COMPONENT="wps"
case $(basename "$0") in
wps-writer|wps-office) COMPONENT="wps" ;;
wps-presentation) COMPONENT="wpp" ;;
wps-spreadsheets) COMPONENT="et" ;;
wps-pdf) COMPONENT="wpspdf" ;;
esac
[ ! -f "$WPS_DIR/opt/kingsoft/wps-office/office6/$COMPONENT" ] && "$BUILD_SCRIPT"
[ ! -f "$WPS_DIR/opt/kingsoft/wps-office/office6/$COMPONENT" ] && exit 1
export QT_QPA_PLATFORM="wayland;xcb"
export XDG_CURRENT_DESKTOP="KDE"
export DISPLAY=${DISPLAY:-:0}
export LD_LIBRARY_PATH="$WPS_DIR/opt/kingsoft/wps-office/office6:$LD_LIBRARY_PATH"
exec "$WPS_DIR/opt/kingsoft/wps-office/office6/$COMPONENT" "$@"
EOF
chmod 0755 %{buildroot}%{_bindir}/wps-office
for comp in writer presentation spreadsheets pdf; do
ln -sf wps-office %{buildroot}%{_bindir}/wps-$comp
done
install -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/applications/wps-office-docker.desktop
ln -sf %{_bindir}/wps-office %{buildroot}%{_bindir}/wps-office-docker
cat > %{buildroot}%{_docdir}/%{name}/README << 'EOF'
WPS OFFICE DOCKER
=================
Версия: 12.1.2.23578-67.1
УСТАНОВКА:
sudo rpm -ivh wps-office-docker-12.1.2.23578-67.1.x86_64.rpm
ЗАПУСК:
wps-office # Writer
wps-presentation # Presentation
wps-spreadsheets # Spreadsheets
wps-pdf # PDF Reader
EOF
echo "not_installed" > %{buildroot}%{_sharedstatedir}/%{name}/status
%post
update-desktop-database &>/dev/null || :
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
kbuildsycoca6 --noincremental &>/dev/null || :
chmod 755 /opt/wps-office 2>/dev/null || true
chmod 755 /var/log/wps-office-docker 2>/dev/null || true
chmod 755 /var/lib/wps-office-docker 2>/dev/null || true
touch /var/log/wps-office-docker/wps.log 2>/dev/null || true
chmod 666 /var/log/wps-office-docker/wps.log 2>/dev/null || true
gtk-update-icon-cache -f -t %{_datadir}/icons/hicolor &>/dev/null || :
echo ""
echo "==========================================================="
echo " WPS OFFICE DOCKER УСТАНОВЛЕН"
echo "==========================================================="
echo ""
echo " Запуск: wps-office"
echo " Иконка: синий знак на белом фоне"
echo ""
%preun
if [ $1 -eq 0 ]; then
pkill -f wps-office 2>/dev/null || true
fi
%postun
update-desktop-database &>/dev/null || :
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files
%defattr(-,root,root)
%{_bindir}/wps-office
%{_bindir}/wps-office-docker
%{_bindir}/wps-office-build
%{_bindir}/wps-writer
%{_bindir}/wps-presentation
%{_bindir}/wps-spreadsheets
%{_bindir}/wps-pdf
%{_datadir}/applications/wps-office-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/wps-office-docker.png
%{_datadir}/icons/hicolor/*x*/apps/wps-office-docker.png
# Конфиги
%dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/Dockerfile.rosa
# Данные
%dir %attr(755,root,root) %{_sharedstatedir}/%{name}
%dir %attr(755,root,root) %{_sharedstatedir}/%{name}/source
%attr(644,root,root) %{_sharedstatedir}/%{name}/source/wps-office-12.1.2.23578-46.2.src.rpm
%dir %attr(755,root,root) %{_sharedstatedir}/%{name}/src
%{_sharedstatedir}/%{name}/src/
%attr(644,root,root) %{_sharedstatedir}/%{name}/status
# Логи
%dir %attr(755,root,root) %{_localstatedir}/log/%{name}
%ghost %attr(666,root,root) %{_localstatedir}/log/%{name}/wps.log
%ghost %attr(644,root,root) %{_localstatedir}/log/%{name}/build.log
# Документация
%dir %{_docdir}/%{name}
%doc %{_docdir}/%{name}/README
%changelog
* Tue Mar 17 2026 Alex S.Shubin <renard.corp@hotmail.com> 12.1.2.23578-67.1
- Исправлена ошибка с install для иконки
- Добавлен путь назначения для wps.png
- Иконка копируется в /usr/share/icons/hicolor/128x128/apps/