diff --git a/.gitignore b/.gitignore index c949aed..3c82a5f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,21 @@ /xournalpp-1.1.1.tar.gz /xournalpp-1.1.2.tar.gz /xournalpp-1.1.3.tar.gz +/xournalpp-1.2.0.tar.gz +/xournalpp-1.2.1.tar.gz +/xournalpp-1.2.2.tar.gz +/xournalpp-1.2.3.tar.gz +/xournalpp-1.2.4.tar.gz +/xournalpp-1.2.5.tar.gz +/xournalpp-1.2.6.tar.gz +/xournalpp-1.2.7.tar.gz +/xournalpp-1.2.8.tar.gz +/xournalpp-1.2.10.tar.gz +/xournalpp-1.3.0.tar.gz +/xournalpp-1.3.1.tar.gz +/xournalpp-1.3.2.tar.gz +/xournalpp-1.3.3.tar.gz +/xournalpp-1.3.4.tar.gz +/xournalpp-1.3.5.tar.gz +/xournalpp-1.3.6.tar.gz +/xournalpp-1.3.7.tar.gz diff --git a/sources b/sources index 76bba8a..8ad1f7c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (xournalpp-1.1.3.tar.gz) = 7b3f1507a8f7b2b5ebef093e319008d4bc14b961ab528af490d133bc64176b85b14a4002753f5444f8fd96c326e7c6cf5d1bad443ad7ce2ea56e9f465aacae3d +SHA512 (xournalpp-1.3.7.tar.gz) = 119f11d9a6a22c616b104b559a56fa960047a898e016c22987d44fadcae5659896f7d7ecb110b86bd3bce8d5bdfb5b78849233e96bfa3905b6c750ce80ea3c5d diff --git a/xournalpp.spec b/xournalpp.spec index 72e3d2e..c2389af 100644 --- a/xournalpp.spec +++ b/xournalpp.spec @@ -1,92 +1,113 @@ -%global __cmake_in_source_build 0 -%global _with_cppunit 1 -%global _gtest 1 -#%%global profiling 0 +%bcond cppunit 1 +%bcond gtest 1 +%bcond profiling 1 + +# qpdf is not available with the required version on RHEL ≤ 9 +%if 0%{?rhel} && 0%{?rhel} <= 9 +%bcond qpdf 0 +%else +%bcond qpdf 1 +%endif + +%global forgeurl https://github.com/xournalpp/xournalpp Name: xournalpp -Version: 1.1.3 +Version: 1.3.7 Release: %autorelease Summary: Handwriting note-taking software with PDF annotation support -License: GPLv2+ -URL: https://github.com/%{name}/%{name} -Source: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +License: GPL-2.0-or-later +%forgemeta +URL: %{forgeurl} +Source: %{forgesource} BuildRequires: cmake >= 3.10 BuildRequires: desktop-file-utils BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: gettext +BuildRequires: git BuildRequires: help2man BuildRequires: libappstream-glib - -%{?_with_cppunit: -BuildRequires: pkgconfig(cppunit) >= 1.12-0 -} -BuildRequires: pkgconfig(glib-2.0) >= 2.32.0 +BuildRequires: ninja-build + +%if %{with cppunit} +BuildRequires: pkgconfig(cppunit) >= 1.12 +%endif +BuildRequires: pkgconfig(glib-2.0) >= 2.32 +%if %{with gtest} +BuildRequires: pkgconfig(gtest) +%endif BuildRequires: pkgconfig(gtk+-3.0) >= 3.19.9 BuildRequires: pkgconfig(gtksourceview-4) >= 4.0.0 BuildRequires: pkgconfig(librsvg-2.0) -%{?profiling: +%if %{with profiling} BuildRequires: pkgconfig(libprofiler) >= 2.5 BuildRequires: pkgconfig(libtcmalloc) >= 2.5 -} -BuildRequires: pkgconfig(libxml-2.0) >= 2.0.0 +%endif +%if %{with qpdf} +BuildRequires: pkgconfig(libqpdf) >= 10.6.0 +%endif +BuildRequires: pkgconfig(libxml-2.0) >= 2.0 BuildRequires: pkgconfig(libzip) >= 1.0.1 BuildRequires: pkgconfig(lua) >= 5.3 -BuildRequires: pkgconfig(poppler-glib) >= 0.41.0 +BuildRequires: pkgconfig(poppler-glib) >= 0.41 BuildRequires: pkgconfig(portaudiocpp) >= 12 BuildRequires: pkgconfig(sndfile) >= 1.0.25 + Recommends: texlive-latex-bin Requires: hicolor-icon-theme Requires: %{name}-plugins = %{version}-%{release} Requires: %{name}-ui = %{version}-%{release} %description -Xournal++ is a handwriting note-taking software with PDF annotation support. -Supports Pen input like Wacom Tablets +Xournal++ is a handwriting note-taking application with PDF annotation support. +It is optimized for pen input such as Wacom tablets. -%package plugins -Summary: Default plugin for %{name} +%package plugins +Summary: Default plugins for %{name} BuildArch: noarch -%description plugins -The %{name}-plugins package contains sample plugins for %{name}. +%description plugins +This package contains sample plugins for %{name}. -%package ui -Summary: User interface for %{name} +%package ui +Summary: User interface files for %{name} BuildArch: noarch -%description ui -The %{name}-ui package contains a graphical user interface for %{name}. - +%description ui +This package contains user interface resources for %{name}. %prep -%autosetup +%forgeautosetup -p1 %build %cmake \ - -DDISTRO_CODENAME="Fedora Linux" \ - %{?_with_cppunit: -DENABLE_CPPUNIT=ON} \ - -DENABLE_MATHTEX=ON \ - -DMAC_INTEGRATION=OFF + -DCMAKE_BUILD_TYPE="Release" \ + -DDISTRO_CODENAME="Fedora Linux" \ + -DENABLE_GTEST=%{with gtest} \ + -DENABLE_PROFILING=%{with profiling} \ + -DENABLE_QPDF=%{with qpdf} %cmake_build %install %cmake_install - -#Remove depreciated key from desktop file -#Fix desktop file associated with application -desktop-file-install \ - --remove-key="Encoding" \ - --set-key="StartupWMClass" \ - --set-value="xournalpp" \ - %{buildroot}%{_datadir}/applications/com.github.%{name}.%{name}.desktop %find_lang %{name} -# REMOVE UNNECESSARY SCRIPTS -find %{buildroot}%{_datadir}/%{name} -name update-icon-cache.sh -delete -print -%fdupes %{buildroot}%{_datadir} +# Generate and install man pages. +install -d '%{buildroot}%{_mandir}/man1' +for cmd in %{buildroot}%{_bindir}/* +do + LD_LIBRARY_PATH='%{buildroot}%{_libdir}' \ + help2man \ + --no-info --no-discard-stderr --version-string='%{version}' \ + --output="%{buildroot}%{_mandir}/man1/$(basename "${cmd}").1" \ + "${cmd}" +done + +# Remove unnecessary scripts and duplicate files +find %{buildroot} -name "*.sh" -delete +%fdupes %{buildroot} %check desktop-file-validate %{buildroot}%{_datadir}/applications/com.github.%{name}.%{name}.desktop @@ -95,23 +116,24 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/com.github.%{n %files -f %{name}.lang %license LICENSE %doc README.md AUTHORS -%{_bindir}/%{name}-thumbnailer -%{_bindir}/%{name} +%{_bindir}/%{name}{,-thumbnailer,-wrapper} %{_datadir}/applications/com.github.%{name}.%{name}.desktop %{_datadir}/icons/hicolor/scalable/apps/com.github.%{name}.%{name}.svg %{_datadir}/icons/hicolor/scalable/mimetypes/* %{_datadir}/mime/packages/com.github.%{name}.%{name}.xml -%exclude %{_datadir}/mimelnk/application/* %{_datadir}/thumbnailers/com.github.%{name}.%{name}.thumbnailer %dir %{_datadir}/%{name} +%{_datadir}/%{name}/palettes/*.gpl %{_datadir}/%{name}/resources/*_template.tex %{_mandir}/man1/%{name}*.gz %{_metainfodir}/com.github.%{name}.%{name}.appdata.xml %files plugins +%doc README.md %{_datadir}/%{name}/plugins %files ui +%doc README.md %{_datadir}/%{name}/ui %changelog