+#
+# Conditional build:
+%bcond_without apidocs # gi-docgen based API documentation
+%bcond_without static_libs # static library
+
Summary: API documentation browser for GNOME
Summary(pl.UTF-8): Przeglądarka dokumentacji API dla GNOME
Name: devhelp
-Version: 3.4.1
-Release: 2
+Version: 43.0
+Release: 1
License: GPL v2+
Group: X11/Applications
-Source0: http://ftp.gnome.org/pub/GNOME/sources/devhelp/3.4/%{name}-%{version}.tar.xz
-# Source0-md5: d9428af3d308c1f97c2a2eebe6b451c0
+Source0: https://download.gnome.org/sources/devhelp/43/%{name}-%{version}.tar.xz
+# Source0-md5: 14b56884ae13c4ad7d87036a65b9eaed
Patch0: %{name}-bookdir.patch
-URL: http://www.imendio.com/projects/devhelp/
-BuildRequires: GConf2-devel >= 2.24.0
-BuildRequires: autoconf >= 2.64
-BuildRequires: automake >= 1:1.11
-BuildRequires: gettext-devel >= 0.17
-BuildRequires: gnome-common >= 2.24.0
-BuildRequires: gtk+3-devel >= 3.0.2
-BuildRequires: gtk-webkit3-devel >= 1.6.0
-BuildRequires: intltool >= 0.40.0
-BuildRequires: libtool >= 2:2.2
+URL: https://wiki.gnome.org/Apps/Devhelp
+BuildRequires: gettext-tools >= 0.19.7
+%{?with_apidocs:BuildRequires: gi-docgen >= 2021.6}
+BuildRequires: glib2-devel >= 1:2.64
+BuildRequires: gobject-introspection-devel >= 1.30.0
+BuildRequires: gsettings-desktop-schemas-devel
+BuildRequires: gtk+3-devel >= 3.22.0
+# gtk-webkit4-devel >= 2.26 possible as fallback
+BuildRequires: gtk-webkit4.1-devel >= 2.34
+BuildRequires: meson >= 0.57
+BuildRequires: ninja >= 1.5
BuildRequires: pkgconfig
-BuildRequires: python >= 2.3
+BuildRequires: python3-devel >= 1:3.3
+BuildRequires: rpm-build >= 4.6
BuildRequires: rpm-pythonprov
-BuildRequires: rpmbuild(macros) >= 1.311
+BuildRequires: rpmbuild(macros) >= 2.029
+BuildRequires: sed >= 4.0
BuildRequires: tar >= 1:1.22
BuildRequires: xz
-BuildRequires: zlib-devel
-Requires(post,preun): GConf2 >= 2.24.0
Requires(post,postun): gtk-update-icon-cache
Requires: %{name}-libs = %{version}-%{release}
-Requires: gtk-webkit3 >= 1.6.0
+Requires: glib2 >= 1:2.64
+Requires: gsettings-desktop-schemas
Requires: hicolor-icon-theme
-# sr@Latn vs. sr@latin
-Conflicts: glibc-misc < 6:2.7
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Summary: Library to embed Devhelp in other applications
Summary(pl.UTF-8): Biblioteka do osadzania Devhelp w innych aplikacjach
Group: X11/Libraries
+Requires: glib2 >= 1:2.64
+Requires: gtk+3 >= 3.22.0
+Requires: gtk-webkit4.1 >= 2.34
%description libs
Library of Devhelp for embedding into other applications.
Summary(pl.UTF-8): Pliki nagłówkowe biblioteki Devhelp
Group: X11/Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
-Requires: gtk+3-devel >= 3.0.2
+Requires: glib2-devel >= 1:2.64
+Requires: gtk+3-devel >= 3.22.0
+Requires: gtk-webkit4.1-devel >= 2.34
%description devel
Headers for Devhelp library.
%description static -l pl.UTF-8
Statyczna biblioteka Devhelp.
+%package apidocs
+Summary: Devhelp API documetation
+Summary(pl.UTF-8): Dokumentacja API Devhelp
+Group: Documentation
+BuildArch: noarch
+
+%description apidocs
+Devhelp API documetation.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API Devhelp.
+
+%package -n emacs-devhelp
+Summary: Emacs integration for Devhelp
+Summary(pl.UTF-8): Integracja Emacsa z Devhelpem
+Group: Applications/Editors
+Requires: %{name} = %{version}-%{release}
+Requires: emacs-common
+BuildArch: noarch
+
+%description -n emacs-devhelp
+Emacs integration for Devhelp.
+
+%description -n emacs-devhelp -l pl.UTF-8
+Integracja Emacsa z Devhelpem.
+
%package -n gedit-plugin-devhelp
Summary: Devhelp plugin for Gedit editor
Summary(pl.UTF-8): Wtyczka devhelpa dla edytora Gedit
Group: X11/Applications
Requires: %{name} = %{version}-%{release}
-Requires: gedit
-Requires: libpeas-loader-python
-Requires: python-pygobject >= 2.27.91
+# python3 based gedit
+Requires: gedit >= 3.8
+Requires: libpeas-loader-python3
+Requires: python3 >= 1:3.3
+Requires: python3-pygobject3 >= 3
+Obsoletes: gedit2-plugin-devhelp < 3.4.1-2
%description -n gedit-plugin-devhelp
Plugin that allows to browse API documentation in Gedit.
%description -n gedit-plugin-devhelp -l pl.UTF-8
Wtyczka umożliwiająca przeglądanie dokumentacji API w edytorze Gedit.
+%package -n vim-plugin-devhelp
+Summary: Vim integration for Devhelp
+Summary(pl.UTF-8): Integracja Vima z Devhelpem
+Group: Applications/Editors
+Requires: %{name} = %{version}-%{release}
+Requires: vim-rt
+BuildArch: noarch
+
+%description -n vim-plugin-devhelp
+Vim integration for Devhelp.
+
+%description -n vim-plugin-devhelp -l pl.UTF-8
+Integracja Vima z Devhelpem.
+
%prep
%setup -q
%patch0 -p1
+%if %{with static_libs}
+%{__sed} -i '/libdevhelp_shared_lib = / s/shared_library/library/' devhelp/meson.build
+%endif
+
%build
-%{__intltoolize}
-%{__libtoolize}
-%{__aclocal}
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-%configure \
- --enable-static \
- --disable-schemas-install \
- --disable-silent-rules
-%{__make}
+%meson build \
+ %{?with_apidocs:-Dgtk_doc=true} \
+ -Dplugin_emacs=true \
+ -Dplugin_gedit=true \
+ -Dplugin_vim=true
+
+%ninja_build -C build
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/gconf \
- $RPM_BUILD_ROOT%{_datadir}/%{name}/{books,specs}
+install -d $RPM_BUILD_ROOT%{_datadir}/%{name}/{books,references,specs}
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
+%ninja_install -C build
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/gedit/plugins/*.py \
- $RPM_BUILD_ROOT%{_libdir}/*.la
+%py3_comp $RPM_BUILD_ROOT%{_libdir}/gedit/plugins
+%py3_ocomp $RPM_BUILD_ROOT%{_libdir}/gedit/plugins
-%find_lang %{name}
+%if %{with apidocs}
+install -d $RPM_BUILD_ROOT%{_gidocdir}
+%{__mv} $RPM_BUILD_ROOT%{_docdir}/devhelp-3 $RPM_BUILD_ROOT%{_gidocdir}
+%endif
+
+%find_lang %{name} --with-gnome
%clean
rm -rf $RPM_BUILD_ROOT
%post
-%gconf_schema_install devhelp.schemas
+%glib_compile_schemas
%update_icon_cache hicolor
-%preun
-%gconf_schema_uninstall devhelp.schemas
-
%postun
+%glib_compile_schemas
%update_icon_cache hicolor
%post libs -p /sbin/ldconfig
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc AUTHORS NEWS README TODO
+%doc NEWS README.md
%attr(755,root,root) %{_bindir}/devhelp
-%{_datadir}/%{name}
-%{_desktopdir}/devhelp.desktop
-%{_iconsdir}/hicolor/*/apps/*.png
-%{_sysconfdir}/gconf/schemas/devhelp.schemas
+%dir %{_datadir}/%{name}
+%{_datadir}/%{name}/assistant
+# 3 following are data dirs
+%dir %{_datadir}/%{name}/books
+%dir %{_datadir}/%{name}/references
+%dir %{_datadir}/%{name}/specs
+%{_datadir}/dbus-1/services/org.gnome.Devhelp.service
+%{_datadir}/glib-2.0/schemas/org.gnome.devhelp.gschema.xml
+%{_datadir}/glib-2.0/schemas/org.gnome.libdevhelp-3.gschema.xml
+%{_datadir}/metainfo/org.gnome.Devhelp.appdata.xml
+%{_desktopdir}/org.gnome.Devhelp.desktop
+%{_iconsdir}/hicolor/scalable/apps/org.gnome.Devhelp.svg
+%{_iconsdir}/hicolor/symbolic/apps/org.gnome.Devhelp-symbolic.svg
+%{_mandir}/man1/devhelp.1*
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libdevhelp-3.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libdevhelp-3.so.0
+%attr(755,root,root) %ghost %{_libdir}/libdevhelp-3.so.6
+%{_libdir}/girepository-1.0/Devhelp-3.0.typelib
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libdevhelp-3.so
+%{_datadir}/gir-1.0/Devhelp-3.0.gir
%{_pkgconfigdir}/libdevhelp-3.0.pc
-%{_includedir}/devhelp-3.0
+%{_includedir}/devhelp-3
+%if %{with static_libs}
%files static
%defattr(644,root,root,755)
%{_libdir}/libdevhelp-3.a
+%endif
+
+%if %{with apidocs}
+%files apidocs
+%defattr(644,root,root,755)
+%{_gidocdir}/devhelp-3
+%endif
+
+%files -n emacs-devhelp
+%defattr(644,root,root,755)
+%{_datadir}/emacs/site-lisp/devhelp.el
%files -n gedit-plugin-devhelp
%defattr(644,root,root,755)
%{_libdir}/gedit/plugins/devhelp.plugin
-%{_libdir}/gedit/plugins/devhelp.py[co]
+%{_libdir}/gedit/plugins/devhelp.py
+%{_libdir}/gedit/plugins/__pycache__/devhelp.cpython-*.py[co]
+
+%files -n vim-plugin-devhelp
+%defattr(644,root,root,755)
+%{_datadir}/vim/vimfiles/plugin/devhelp.vim