peazip/peazip.spec
2024-08-20 10:58:21 +00:00

114 lines
4.2 KiB
RPMSpec

%define debug_package %{nil}
%define pkgname PeaZip
Summary: File and archive manager
Name: peazip
Version: 9.9.1
Release: 1
License: LGPLv3+
Group: File tools
URL: https://peazip.github.io
Source0: https://github.com/peazip/PeaZip/archive/%{version}/%{name}-%{version}.tar.gz
#Source0: https://github.com/peazip/PeaZip/releases/download/%{name}/%{name}-%{version}.src.zip
Source1000: %{name}.rpmlintrc
# configure to run in users home appdata
Source1: altconf.txt
Source2: rosa-peazip.desktop
BuildRequires: dos2unix
BuildRequires: lazarus >= 3.0
BuildRequires: llvm17
#BuildRequires: qt5pas-devel
#BuildRequires: qt5-devel
BuildRequires: icoutils
BuildRequires: imagemagick
BuildRequires: qt515
BuildRequires: stdc++-gcc10-devel
Requires: p7zip
Requires: upx >= 3.09
Requires: brotli
Requires: zstd
Requires: arc
Requires: zpaq
# lazaris not build for ARM
#ExcludeArch: %{armx}
%description
PeaZip is a free cross-platform file archiver that provides an unified
portable GUI for many Open Source technologies like 7-Zip, FreeArc, PAQ,
UPX...
%files
%doc README.md LICENSE peazip-sources/res/share/copying peazip-sources/res/share/readme/*Linux.txt peazip-sources/res/share/*.pdf
%{_bindir}/*
%{_datadir}/icons/hicolor/*/apps/*.png
%{_datadir}/applications/*.desktop
%{_datadir}/kde4/services/ServiceMenus/*.desktop
%{_datadir}/%{name}
#---------------------------------------------------------------------
%prep
%setup -qn %{pkgname}-%{version}
%apply_patches
pushd peazip-sources
dos2unix readme*
popd
%build
#lazbuild packages/metadarkstyle-main/metadarkstyle.lpk
lazbuild peazip-sources/dev/metadarkstyle/metadarkstyle.lpk
lazbuild peazip-sources/dev/project_peach.lpi
lazbuild peazip-sources/dev/project_pea.lpi
%install
install -d %{buildroot}%{_bindir}
install -d %{buildroot}%{_datadir}/%{name}/res/share
cp -a peazip-sources/res/{bin,conf} %{buildroot}%{_datadir}/%{name}/res
cp -a peazip-sources/res/share/{batch,icons,lang,presets,themes} %{buildroot}%{_datadir}/%{name}/res/share
install -Dm0644 %{SOURCE1} %{buildroot}%{_datadir}/%{name}/res/conf
# rm windows batch
rm -rf %{buildroot}%{_datadir}/%{name}/res/share/batch//Windows %{buildroot}%{_datadir}/%{name}/res/share/batch//bat
#install helper apps
install -d %{buildroot}%{_datadir}/%{name}/res/bin/{7z,upx,zstd,brotli,arc,zpaq}
ln -s %{_bindir}/7z %{buildroot}%{_datadir}/%{name}/res/bin/7z/7z
ln -s %{_bindir}/upx %{buildroot}%{_datadir}/%{name}/res/bin/upx/upx
ln -s %{_bindir}/zstd %{buildroot}%{_datadir}/%{name}/res/bin/zstd/zstd
ln -s %{_bindir}/brotli %{buildroot}%{_datadir}/%{name}/res/bin/brotli/brotli
ln -s %{_bindir}/zpaq %{buildroot}%{_datadir}/%{name}/res/bin/zpaq/zpaq
ln -s %{_bindir}/arc %{buildroot}%{_datadir}/%{name}/res/bin/arc/arc
# clean txt
find %{buildroot}%{_datadir}/%{name}/res/bin -type f -name "*.txt" -exec rm -f {} \;
install -Dm0755 peazip-sources/dev/pea %{buildroot}%{_datadir}/%{name}/pea
ln -s %{_datadir}/%{name}/pea %{buildroot}%{_bindir}/pea
install -Dm0755 peazip-sources/dev/%{name} %{buildroot}%{_datadir}/%{name}/%{name}
ln -s %{_datadir}/%{name}/%{name} %{buildroot}%{_bindir}/%{name}
install -d %{buildroot}%{_datadir}/applications
cp -a peazip-sources/res/share/batch/freedesktop_integration/*.desktop %{buildroot}%{_datadir}/applications
# KDE 4 integration
install -d %{buildroot}%{_datadir}/kde4/services/ServiceMenus
cp -a peazip-sources/res/share/batch/freedesktop_integration/KDE-servicemenus/KDE4-dolphin/*.desktop %{buildroot}%{_datadir}/kde4/services/ServiceMenus/
# install icons
pushd peazip-sources/res/share/batch/freedesktop_integration
for x in 16 24 32 48 64 96 128 256; do
install -d %{buildroot}%{_iconsdir}/hicolor/${x}x${x}/apps/
convert -resize ${x}x${x} peazip.png %{buildroot}%{_iconsdir}/hicolor/${x}x${x}/apps/peazip.png
convert -resize ${x}x${x} peazip_add.png %{buildroot}%{_iconsdir}/hicolor/${x}x${x}/apps/peazip_add.png
convert -resize ${x}x${x} peazip_extract.png %{buildroot}%{_iconsdir}/hicolor/${x}x${x}/apps/peazip_extract.png
done
popd
# clean
rm -rf %{buildroot}%{_datadir}/%{name}/res/share/icons/{*.ico,*.icl}
rm -rf %{buildroot}%{_datadir}/%{name}/res/share/batch/{*.bat,SendTo,Windows\ 11\ mini\ context\ menu,macOS\ service\ menus,freedesktop_integration}