File cutter-re.spec of Package cutter
%global cutter_translations_commit 8d5d2f9b3e0b494be3bc1ce7c5900dbe64e2e577
%global rizin_version 0.8.0
Name: cutter-re
Version: 2.4.0
Release: 1%{?dist}
Summary: GUI for Rizin reverse engineering framework
%if !%{defined _metainfodir}
%global _metainfodir %{_datadir}/metainfo
%endif
# CC-BY-SA: src/img/icons/
# CC0: src/fonts/Anonymous Pro.ttf
License: GPLv3 and CC-BY-SA and CC0
URL: https://cutter.re/
Source0: https://github.com/rizinorg/cutter/releases/download/v%{version}/Cutter-v%{version}-src.tar.gz
Source1: debian.cutter-re.desktop
Source2: debian.cutter-re.appdata.xml
BuildRequires: rizin-devel >= %{rizin_version}
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: make
BuildRequires: python3-devel
%if 0%{?suse_version}
BuildRequires: libKF5SyntaxHighlighting5
BuildRequires: libqt5-qtsvg-devel
BuildRequires: libqt5-linguist-devel
BuildRequires: libqt5-qtwebengine-devel
BuildRequires: libQt5Network-devel
BuildRequires: appstream-glib-devel
%else
BuildRequires: kf5-syntax-highlighting-devel
BuildRequires: qt5-qtsvg-devel
BuildRequires: qt5-linguist
BuildRequires: qt5-qtwebengine-devel
BuildRequires: libappstream-glib
%endif
BuildRequires: file-devel
BuildRequires: desktop-file-utils
BuildRequires: graphviz-devel
%if !0%{?rhel}
Requires: python3-jupyter-client
Requires: python3-notebook
%endif
Requires: hicolor-icon-theme
%description
Cutter is a Qt and C++ GUI for Rizin. Its goal is making an advanced,
customizable and FOSS reverse-engineering platform while keeping the user
experience at mind. Cutter is created by reverse engineers for reverse
engineers.
%package devel
Summary: Development files for the cutter-re package
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: rizin-devel >= %{rizin_version}
%if 0%{?suse_version}
Requires: libqt5-qtbase-devel
Requires: libqt5-qtsvg-devel
%else
Requires: qt5-qtbase-devel
Requires: qt5-qtsvg-devel
%endif
%description devel
Development files for the cutter-re package. See cutter-re package for more
information.
%prep
%autosetup -p1 -n Cutter-v%{version}
%build
%if 0%{?centos}
%cmake -DCUTTER_QT=5 -DCUTTER_USE_BUNDLED_RIZIN=OFF -B centos-build
cd centos-build
%else
%cmake -DCUTTER_QT=5 -DCUTTER_USE_BUNDLED_RIZIN=OFF
%endif
%cmake_build
%install
%if 0%{?centos}
cd centos-build
%endif
%cmake_install
mv %{buildroot}%{_bindir}/cutter %{buildroot}%{_bindir}/cutter-re
# replace default .desktop file with our own, to use cutter-re name
mkdir -p %{buildroot}%{_datadir}/applications
rm %{buildroot}%{_datadir}/applications/re.rizin.cutter.desktop
cp %{SOURCE1} ./cutter-re.desktop
desktop-file-install --dir=%{buildroot}%{_datadir}/applications \
./cutter-re.desktop
mkdir -p %{buildroot}%{_metainfodir}
install -pm644 %{SOURCE2} \
%{buildroot}%{_metainfodir}/cutter-re.appdata.xml
# rename cutter svg icon to cutter-re
mv %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/{cutter,cutter-re}.svg
sed -i 's/bin\/cutter/bin\/cutter-re/g' %{buildroot}%{_libdir}/cmake/Cutter/CutterTargets-*.cmake
%check
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.appdata.xml
%files
%{_bindir}/cutter-re
%{_datadir}/applications/*.desktop
%{_datadir}/rizin/cutter/translations/*.qm
%if 0%{?suse_version}
%{_datadir}/metainfo/*.appdata.xml
%else
%{_metainfodir}/*.appdata.xml
%endif
%{_datadir}/icons/hicolor/scalable/apps/*.svg
%dir %{_datadir}/icons/hicolor/scalable/
%dir %{_datadir}/icons/hicolor/scalable/apps
%dir %{_datadir}/rizin/cutter
%dir %{_datadir}/rizin/cutter/translations
%license COPYING src/img/icons/Iconic-LICENSE
%doc README.md
%files devel
%{_includedir}/cutter
%{_libdir}/cmake/Cutter/*.cmake
%dir %{_libdir}/cmake/Cutter
%changelog
* Mon Mar 25 2024 Riccardo Schirone <rschirone91@gmail.com> - 2.3.4-1
- Rebase to version 2.3.4
* Tue Jan 9 2024 Riccardo Schirone <rschirone91@gmail.com> - 2.3.2-1
- Rebase to version 2.3.2
* Fri Aug 11 2023 Riccardo Schirone <rschirone91@gmail.com> - 2.3.0-1
- Rebase to version 2.3.0
* Tue May 23 2023 Riccardo Schirone <rschirone91@gmail.com> - 2.2.1-1
- Rebase to version 2.2.1
* Thu Feb 23 2023 Riccardo Schirone <rschirone91@gmail.com> - 2.2.0-1
- Rebase to version 2.2.0
* Fri Sep 16 2022 Riccardo Schirone <rschirone91@gmail.com> - 2.1.2-1
- Rebase to version 2.1.2
* Thu Jul 14 2022 Riccardo Schirone <rschirone91@gmail.com> - 2.1.0-2
- Small fixes to spec file
* Thu Jul 14 2022 Riccardo Schirone <rschirone91@gmail.com> - 2.1.0-1
- Rebase to version 2.1.0 which uses Rizin 0.4.0