File quentier.spec of Package quentier-development

%if 0%{?fedora_version} >= 40
%global _vpath_builddir .
%endif

# OpenSUSE Leap by default ships with gcc which is too old to build
# libquentier, so require gcc-13
%if 0%{?sle_version} == 150600 && 0%{?is_opensuse} && 0%{?gcc_version} < 13
%define with_gcc 13
%endif

Name:       quentier
Summary:    Cross-platform desktop Evernote client
Version:    0.6.0
Release:    1%{?dist}

Group: 		Productivity/Other

%if 0%{?fedora_version}
License:    GPLv3
%else
License: 	GPL-3.0-only
%endif

URL:        https://github.com/d1vanov/quentier
Source0:    %{name}-%{version}.tar.gz

BuildRequires: gcc%{?with_gcc}-c++
BuildRequires: cmake
BuildRequires: cmake(Qt5Core)
BuildRequires: cmake(Qt5Gui)
BuildRequires: cmake(Qt5Widgets)
BuildRequires: cmake(Qt5LinguistTools)
BuildRequires: cmake(Libquentier-qt5)
BuildRequires: cmake(QEverCloud-qt5)
BuildRequires: cmake(Qt5Network)
BuildRequires: cmake(Qt5PrintSupport)
BuildRequires: cmake(Qt5Xml)
BuildRequires: cmake(Qt5Xml)
BuildRequires: cmake(Qt5Sql)
BuildRequires: cmake(Qt5Test)
BuildRequires: cmake(Qt5LinguistTools)
BuildRequires: cmake(Qt5DBus)
BuildRequires: cmake(Qt5WebEngine)
BuildRequires: cmake(Qt5WebEngineCore)
BuildRequires: cmake(Qt5WebEngineWidgets)
BuildRequires: cmake(Qt5WebSockets)
BuildRequires: cmake(Qt5WebChannel)
BuildRequires: cmake(QEverCloud-qt5)
BuildRequires: cmake(Qt5Keychain)
BuildRequires: coreutils
BuildRequires: pkgconfig(hunspell)
BuildRequires: pkgconfig(openssl)
BuildRequires: libxml2-devel
BuildRequires: boost-devel
BuildRequires: libtidy-devel
%if 0%{?fedora_version}
BuildRequires: libappstream-glib
BuildRequires: xorg-x11-server-Xvfb
%else
BuildRequires: libappstream-glib8
BuildRequires: xvfb-run
BuildRequires: appstream-glib
BuildRequires: libQt5Sql5-sqlite
Requires: libQt5Sql5-sqlite
%endif
BuildRequires: desktop-file-utils

BuildRequires: google-breakpad
BuildRequires: google-breakpad-devel
Requires:      hicolor-icon-theme
Requires:      oxygen-icon-theme
Requires:      tango-icon-theme


%description
Quentier is a cross-platform desktop note taking app capable of working as 
Evernote client. You can also use Quentier for local notes without any 
connection to Evernote and synchronization.


%if 0%{?suse_version}
%lang_package -n %name
%endif

%prep
%setup -q

sed -i "/tango.qrc/d; /oxygen.qrc/d" CMakeLists.txt
sed -i "s/QStringLiteral(\"tango\")/QStringLiteral(\"Tango\")/" bin/quentier/src/MainWindow.cpp

%if 0%{?suse_version}
sed -i '9s/.*/Categories=Qt;Office;Database/g' resource/Quentier.desktop
sed -i '20s/fPIC/fPIC -fPIE/g' cmake/modules/QuentierCompilerSettings.cmake
sed -i '$a set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -ldl -pie")' cmake/modules/QuentierLinkerSettings.cmake
%endif

%build
%if 0%{?fedora_version}
mkdir build && cd build
%endif

%if 0%{?suse_version}
sed -i '11s/1.71/1.66/g' $(pwd)/cmake/modules/QuentierFindDependencies.cmake
%endif

%if 0%{?with_gcc}
export CXX=g++-%{with_gcc}
export CC=gcc-%{with_gcc}
%endif

%if 0%{?suse_version} > 1500
%cmake ../  -DQt5_LUPDATE_EXECUTABLE=%{_bindir}/lupdate-qt5 \
            -DQt5_LRELEASE_EXECUTABLE=%{_bindir}/lrelease-qt5 \
            -DCMAKE_INCLUDE_PATH=/usr/include/tidy \
            -DBREAKPAD_INCLUDE_DIRS=/usr/include/google_breakpad \
            -DBREAKPAD_LIBRARY_DIRS=/usr/lib64 \
            -DBREAKPAD_DUMP_SYMS=/usr/bin/breakpad-dumpsyms \
            -DBREAKPAD_STACKWALKER=/usr/bin/breakpad-stackwalk \
            -DQUENTIER_BUILD_INFO="OpenSUSE build service, unstable. $(date --utc '+%Y-%m-%d %H:%M') UTC"
%else
%if 0%{?fedora_version} >= 40
%cmake ../  -DQt5_LUPDATE_EXECUTABLE=%{_bindir}/lupdate-qt5 \
            -DQt5_LRELEASE_EXECUTABLE=%{_bindir}/lrelease-qt5 \
            -DBREAKPAD_INCLUDE_DIRS=/usr/include/google_breakpad \
            -DBREAKPAD_LIBRARY_DIRS=/usr/lib64 \
            -DBREAKPAD_DUMP_SYMS=/usr/bin/breakpad-dumpsyms \
            -DBREAKPAD_STACKWALKER=/usr/bin/breakpad-stackwalk \
            -DCMAKE_INCLUDE_PATH=/usr/include/tidy \
            -DUSE_LD_GOLD=NO \
            -DQUENTIER_BUILD_INFO="OpenSUSE build service, unstable. $(date --utc '+%Y-%m-%d %H:%M') UTC"
%else
%cmake ../  -DQt5_LUPDATE_EXECUTABLE=%{_bindir}/lupdate-qt5 \
            -DQt5_LRELEASE_EXECUTABLE=%{_bindir}/lrelease-qt5 \
            -DBREAKPAD_INCLUDE_DIRS=/usr/include/google_breakpad \
            -DBREAKPAD_LIBRARY_DIRS=/usr/lib64 \
            -DBREAKPAD_DUMP_SYMS=/usr/bin/breakpad-dumpsyms \
            -DBREAKPAD_STACKWALKER=/usr/bin/breakpad-stackwalk \
            -DCMAKE_INCLUDE_PATH=/usr/include/tidy \
            -DQUENTIER_BUILD_INFO="OpenSUSE build service, unstable. $(date --utc '+%Y-%m-%d %H:%M') UTC"
%endif
%endif

%make_build
%{__make} lupdate
%{__make} lrelease


%install
pushd build
%make_install
popd

rm -rf %{buildroot}%{_datadir}/icons/hicolor/1024x1024

for size in "16x16" "22x22" "32x32" ; do
    for icon in "actions/mail-send.png" \
                "actions/checkbox.png" \
                "actions/format-list-ordered.png" \
                "actions/format-list-unordered.png" \
                "actions/tools-check-spelling.png" \
                "actions/insert-horizontal-rule.png" \
                "actions/format-text-color.png" \
                "actions/fill-color.png" \
                "actions/insert-table.png" \
                "mimetypes/application-pdf.png" \
                "mimetypes/application-enex.png" ; do
        install -Dpm 0644 resource/icons/themes/tango/$size/$icon %buildroot%{_datadir}/icons/Tango/$size/$icon
    done
done
for size in "16x16" "22x22" "32x32" ; do
    install -Dpm 0644 resource/icons/themes/oxygen/$size/mimetypes/application-enex.png %buildroot%{_datadir}/icons/oxygen/$size/mimetypes/application-enex.png
done

%check
desktop-file-validate %{buildroot}%{_datadir}/applications/org.quentier.Quentier.desktop
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/org.quentier.Quentier.appdata.xml

# For some reason xvfb-run fails to initialize GLX only on OpenSUSE Leap so skipping the check on it
%if 0%{?sle_version} == 150600 && 0%{?is_opensuse}
%else
cd build
xvfb-run %{__make} check
%endif


%files -n %{name}
%doc CONTRIBUTING.md CodingStyle.md README.md
%license COPYING
%{_bindir}/*
%{_datadir}/applications/org.quentier.Quentier.desktop
%dir %{_datadir}/icons/hicolor/*
%dir %{_datadir}/icons/hicolor/*/apps
%{_datadir}/icons/hicolor/*/apps/*.png
%{_datadir}/icons/oxygen/
%{_datadir}/icons/Tango/
%{_datadir}/metainfo/org.quentier.Quentier.appdata.xml
%if 0%{?fedora_version}
%dir %{_datadir}/quentier/translations
%{_datadir}/quentier/translations/*.qm
%endif


%if 0%{?suse_version}
%files -n %{name}-lang
%dir %{_datadir}
%dir %{_datadir}/quentier
%dir %{_datadir}/quentier/translations
%{_datadir}/quentier/translations/*.qm
%endif


%changelog
* Sun Jan 26 2025 Dmitry Ivanov <dm.vl.ivanov@gmail.com> - 0.6.0-1
- Adaptation to the changes in libquentier API and behaviour

* Sun Dec 23 2018 Dmitry Ivanov <dm.vl.ivanov@gmail.com> - 0.5.0-1
- Adaptation to the changes in libquentier API and behaviour

* Tue Mar 13 2018 Dmitry Ivanov <dm.vl.ivanov@gmail.com> - 0.4.0-1
- Adaptation for OpenSUSE build service

* Thu Mar 08 2018 Robert-André Mauchin <zebob.m@gmail.com> - 0-0.1.20180301git8226e31
- Master snapshot 8226e3174607c2ef0ed3e32e57fe09484e6d2c0e

* Tue Feb 27 2018 Robert-André Mauchin <zebob.m@gmail.com> - 0-0.1.20180227gite72d0e4
- Master snapshot e72d0e45d908b4246dba79939db01931504e9d0a

* Fri Feb 02 2018 Robert-André Mauchin <zebob.m@gmail.com> - 0-0.1.20180128git442947d
- Initial RPM release.
openSUSE Build Service is sponsored by