# not compatible with libnautilus-extension-4
%bcond_with nautilus
# Exclude private libraries from autogenerated provides and requires
%global __provides_exclude_from ^%{_libdir}/evince/
%global __requires_exclude ^(%%(find %{buildroot}%{_libdir}/evince/ -name '*.so' | xargs -n1 basename | sort -u | paste -s -d '|' -))
%global libarchive_version 3.6.0
%global poppler_version 22.05.0
Name: evince
Version: 48.4
Release: 1
Summary: Document viewer
License: GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND X11 AND MIT AND Afmparse
URL: https://wiki.gnome.org/Apps/Evince
Source0: https://download.gnome.org/sources/%{name}/%{version_major}/%{name}-%{version}.tar.xz
BuildRequires: gcc
BuildRequires: gettext-devel
BuildRequires: pkgconfig(adwaita-icon-theme)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(gio-unix-2.0)
BuildRequires: pkgconfig(gnome-desktop-3.0)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(gspell-1)
BuildRequires: pkgconfig(gstreamer-1.0)
BuildRequires: pkgconfig(gstreamer-base-1.0)
BuildRequires: pkgconfig(gstreamer-video-1.0)
BuildRequires: pkgconfig(gtk+-x11-3.0)
BuildRequires: pkgconfig(libarchive) >= %{libarchive_version}
BuildRequires: pkgconfig(libhandy-1)
BuildRequires: pkgconfig(libsecret-1)
BuildRequires: pkgconfig(libspectre)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(poppler-glib) >= %{poppler_version}
BuildRequires: libtiff-devel
BuildRequires: gi-docgen
BuildRequires: yelp-tools
BuildRequires: /usr/bin/desktop-file-validate
BuildRequires: libappstream-glib-devel
BuildRequires: meson
BuildRequires: systemd-rpm-macros
BuildRequires: pkgconfig(synctex)
# for the dvi backend
BuildRequires: texlive-lib-devel
# for the djvu backend
BuildRequires: djvulibre-devel
%if %{with nautilus}
# for the nautilus properties page
BuildRequires: pkgconfig(libnautilus-extension)
%endif
# for the xps backend
BuildRequires: pkgconfig(libgxps)
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-previewer%{?_isa} = %{version}-%{release}
Requires: %{name}-thumbnailer%{?_isa} = %{version}-%{release}
Conflicts: %{name}-help < 48
Obsoletes: %{name}-help < 48
Obsoletes: %{name}-nautilus < 43~alpha-2
%description
Evince is a document viewer for multiple document formats. The goal of evince is to replace the
multiple document viewers that exist on the GNOME Desktop with a single simple application.
Evince is specifically designed to support the file following formats:
PDF, Postscript, djvu, tiff, dvi, XPS, SyncTex support with gedit, comics books (cbr,cbz,cb7 and cbt).
%package libs
Summary: Libraries for the evince document viewer
Recommends: %{name}-djvu%{?_isa} = %{version}-%{release}
Requires: libarchive%{?_isa} >= %{libarchive_version}
Requires: poppler-glib%{?_isa} >= %{poppler_version}
Conflicts: %{name} < 48
%description libs
This package contains shared libraries needed for evince
%package dvi
Summary: Evince backend for dvi files
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: texlive-collection-fontsrecommended
Conflicts: %{name} < 48
%description dvi
This package contains a backend to let evince display dvi files.
%package djvu
Summary: Evince backend for djvu files
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Conflicts: %{name} < 48
%description djvu
This package contains a backend to let evince display djvu files.
%if %{with nautilus}
%package nautilus
Summary: Evince extension for nautilus
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: nautilus%{?_isa}
Conflicts: %{name} < 48
%description nautilus
This package contains the evince extension for the nautilus file manager.
It adds an additional tab called "Document" to the file properties dialog.
%endif
%package thumbnailer
Summary: Evince thumbnailer
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Conflicts: %{name} < 48
%description thumbnailer
This package brings the Evince thumbnailer independently from Evince.
%package previewer
Summary: Evince previewer
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Conflicts: %{name} < 48
%description previewer
This package brings the Evince previewer independently from Evince.
It provides the printing preview for the GTK printing dialog.
%package devel
Summary: Support for developing backends for the evince document viewer
Requires: %{name} = %{version}-%{release}
Requires: libarchive%{?_isa} >= %{libarchive_version}
Requires: poppler-glib%{?_isa} >= %{poppler_version}
Recommends: gi-docgen-fonts
%description devel
This package contains libraries and header files needed for evince
backend development.
%prep
%autosetup -n %{name}-%{version} -p1
%build
%meson \
-Dcomics=enabled \
-Ddvi=enabled \
-Ddjvu=enabled \
-Dgspell=enabled \
-Dxps=enabled \
-Dnautilus=false \
-Dps=enabled
%meson_build
%install
%meson_install
%find_lang evince --with-gnome
install -d %{buildroot}%{_datadir}/applications
rm -f %{buildroot}%{_datadir}/metainfo/evince-pdfdocument.metainfo.xml
rm -f %{buildroot}%{_datadir}/metainfo/evince-psdocument.metainfo.xml
rm -f %{buildroot}%{_datadir}/metainfo/evince-tiffdocument.metainfo.xml
rm -f %{buildroot}%{_datadir}/metainfo/evince-comicsdocument.metainfo.xml
rm -f %{buildroot}%{_datadir}/metainfo/evince-xpsdocument.metainfo.xml
%check
appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_datadir}/metainfo/org.gnome.Evince.metainfo.xml
desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/org.gnome.Evince.desktop
desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/org.gnome.Evince-previewer.desktop
%files -f evince.lang
%{_bindir}/evince
%{_bindir}/evince-previewer
%{_datadir}/applications/org.gnome.Evince.desktop
%{_datadir}/applications/org.gnome.Evince-previewer.desktop
%{_datadir}/evince/
%{_datadir}/icons/hicolor/*/apps/org.gnome.Evince.*
%{_datadir}/icons/hicolor/*/apps/org.gnome.Evince-symbolic.svg
%{_mandir}/man1/evince.1*
%{_mandir}/man1/evince-previewer.1*
%{_libexecdir}/evinced
%{_datadir}/dbus-1/services/org.gnome.evince.Daemon.service
%{_datadir}/glib-2.0/schemas/org.gnome.Evince.gschema.xml
%{_metainfodir}/org.gnome.Evince.metainfo.xml
%{_userunitdir}/org.gnome.Evince.service
%files libs
%doc NEWS AUTHORS
%license COPYING
%{_libdir}/libevdocument3.so.4*
%{_libdir}/libevview3.so.3*
%dir %{_libdir}/evince
%dir %{_libdir}/evince/4
%dir %{_libdir}/evince/4/backends
%{_libdir}/evince/4/backends/libpdfdocument.so
%{_libdir}/evince/4/backends/pdfdocument.evince-backend
%{_libdir}/evince/4/backends/libpsdocument.so
%{_libdir}/evince/4/backends/psdocument.evince-backend
%{_libdir}/evince/4/backends/libtiffdocument.so
%{_libdir}/evince/4/backends/tiffdocument.evince-backend
%{_libdir}/evince/4/backends/libcomicsdocument.so
%{_libdir}/evince/4/backends/comicsdocument.evince-backend
%{_libdir}/evince/4/backends/libxpsdocument.so
%{_libdir}/evince/4/backends/xpsdocument.evince-backend
%{_libdir}/girepository-1.0/EvinceDocument-3.0.typelib
%{_libdir}/girepository-1.0/EvinceView-3.0.typelib
%files devel
%{_datadir}/doc/evince-libs
%{_datadir}/doc/libevview
%{_datadir}/doc/libevdocument
%dir %{_includedir}/evince
%{_includedir}/evince/3.0
%{_libdir}/libevview3.so
%{_libdir}/libevdocument3.so
%{_libdir}/pkgconfig/evince-view-3.0.pc
%{_libdir}/pkgconfig/evince-document-3.0.pc
%{_datadir}/gir-1.0/EvinceDocument-3.0.gir
%{_datadir}/gir-1.0/EvinceView-3.0.gir
%files dvi
%{_libdir}/evince/4/backends/libdvidocument.so*
%{_libdir}/evince/4/backends/dvidocument.evince-backend
%{_datadir}/metainfo/evince-dvidocument.metainfo.xml
%files djvu
%{_libdir}/evince/4/backends/libdjvudocument.so
%{_libdir}/evince/4/backends/djvudocument.evince-backend
%{_datadir}/metainfo/evince-djvudocument.metainfo.xml
%if %{with nautilus}
%files nautilus
%{_libdir}/nautilus/extensions-3.0/libevince-properties-page.so
%endif
%files thumbnailer
%{_bindir}/evince-thumbnailer
%{_datadir}/thumbnailers/evince.thumbnailer
%{_mandir}/man1/evince-thumbnailer.1*
%files previewer
%{_bindir}/evince-previewer
%{_mandir}/man1/evince-previewer.1*
%changelog
* Wed May 20 2026 Funda Wang <fundawang@yeah.net> - 48.4-1
- update to 48.4
* Tue Apr 07 2026 lingsheng <ultra_planet@qq.com> - 48.1-2
- use %%bcond_with instead
* Tue Dec 09 2025 liweigang <liweiganga@gmail.com> - 48.1-1
- update to version 48.1
* Thu Nov 23 2023 zhangxianting <zhangxianting@uniontech.com> - 44.3-1
- update to version 44.3
* Mon Jan 02 2023 lin zhang <lin.zhang@turbolinux.com.cn> - 43.1-1
- Update to 43.1
* Mon Jun 20 2022 lin zhang <lin.zhang@turbolinux.com.cn> - 42.3-2
- fix build when Meson >= 0.61.5
- remove meson option t1lib
* Mon Mar 28 2022 lin zhang <lin.zhang@turbolinux.com.cn> - 42.3-1
- Update to 42.3
* Tue Jun 15 2021 weijin deng <weijin.deng@turbolinux.com.cn> - 3.38.2-1
- Upgrade to 3.38.2
- Delete 0001-Resolves-deb-762530-rhbz-1061177-add-man-pages.patch that
existed in 3.38.2 version
- Use meson rebuild, change 'SYNCTEX_CFLAGS' to 'CFLAGS'
* Mon Jun 8 2020 yanan li <liyanan032@huawei.com> - 3.30.1-4
- Disable designated LIBTOOL directory in %make_build
* Mon Dec 2 2019 chenzhenyu <chenzhenyu13@huawei.com> - 3.30.1-3
- Package init