-Summary: GNOME2 binary editor
-Summary(pl.UTF-8): Edytor binarny dla GNOME2
+# TODO: use gtk4-update-icon-cache
+#
+# Conditional build:
+%bcond_without apidocs # API documentation
+
+Summary: GNOME binary editor
+Summary(pl.UTF-8): Edytor binarny dla GNOME
Name: ghex
-Version: 2.8.2
+Version: 42.2
Release: 1
-Group: Applications/Editors
-License: GPL
-Source0: http://ftp.gnome.org/pub/gnome/sources/ghex/2.8/%{name}-%{version}.tar.bz2
-# Source0-md5: 1940a9f63b0d37604c6b489cda37fc19
-Patch0: %{name}-schema.patch
-Patch1: %{name}-locale-names.patch
-Patch2: %{name}-desktop.patch
-URL: http://www.gnu.org/directory/text/editors/ghex.html
-BuildRequires: GConf2-devel >= 2.6.1
-BuildRequires: atk-devel >= 1.6.1
-BuildRequires: autoconf >= 2.53
-BuildRequires: automake
-BuildRequires: gail-devel >= 1.6.5
-BuildRequires: gettext-devel
-BuildRequires: gtk+2-devel >= 2:2.4.1
-BuildRequires: intltool >= 0.30
-BuildRequires: libglade2-devel >= 1:2.4.0
-BuildRequires: libgnomeui-devel >= 2.6.1
-BuildRequires: libgnomeprintui-devel >= 2.6.1
-BuildRequires: libtool
+License: GPL v2
+Group: X11/Applications/Editors
+Source0: https://download.gnome.org/sources/ghex/42/%{name}-%{version}.tar.xz
+# Source0-md5: fcc8c2694e3b4122e70c1b767d4af940
+Patch0: %{name}-no-update.patch
+URL: https://wiki.gnome.org/Apps/Ghex
+BuildRequires: gettext-tools
+%{?with_apidocs:BuildRequires: gi-docgen}
+BuildRequires: glib2-devel >= 1:2.66.0
+BuildRequires: gobject-introspection-devel
+BuildRequires: gtk4-devel >= 4.0.0
+BuildRequires: meson >= 0.59.0
+BuildRequires: ninja >= 1.5
BuildRequires: pkgconfig
-BuildRequires: popt-devel
-BuildRequires: rpmbuild(macros) >= 1.197
-BuildRequires: scrollkeeper
-Requires(post,postun): /sbin/ldconfig
-Requires(post,preun): GConf2
-Requires(post,postun): scrollkeeper
+BuildRequires: rpm-build >= 4.6
+BuildRequires: rpmbuild(macros) >= 1.736
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
+BuildRequires: yelp-tools
+Requires(post,postun): glib2 >= 1:2.66.0
+Requires(post,postun): gtk-update-icon-cache
+Requires: %{name}-libs = %{version}-%{release}
+Requires: hicolor-icon-theme
+Conflicts: glibc-misc < 6:2.7
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
narzędzie dla wszystkich graczy, których gry zapisują stan w formacie
innym niż tekstowy.
+%package libs
+Summary: GHex library
+Summary(pl.UTF-8): Biblioteka GHex
+Group: X11/Libraries
+Requires: glib2 >= 1:2.66.0
+Requires: gtk4 >= 4.0.0
+
+%description libs
+GHex library.
+
+%description libs -l pl.UTF-8
+Biblioteka GHex.
+
%package devel
Summary: GHex devel files
Summary(pl.UTF-8): Pliki nagłówkowe GHex
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-Requires: gail-devel >= 1.6.5
-Requires: gtk+2-devel >= 2:2.4.1
+Group: X11/Development/Libraries
+Requires: %{name}-libs = %{version}-%{release}
+Requires: gtk4-devel >= 4.0.0
%description devel
GHex devel files.
%package static
Summary: GHex static library
Summary(pl.UTF-8): Biblioteka statyczna GHex
-Group: Development/Libraries
+Group: X11/Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
%description static
%description static -l pl.UTF-8
Biblioteka statyczna GHex.
+%package apidocs
+Summary: API documentation for GHex library
+Summary(pl.UTF-8): Dokumentacja API biblioteki GHex
+Group: Documentation
+BuildArch: noarch
+
+%description apidocs
+API documentation for GHex library.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API biblioteki GHex.
+
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
-%patch2 -p1
-
-mv po/{no,nb}.po
%build
-%{__glib_gettextize}
-%{__intltoolize}
-%{__libtoolize}
-%{__aclocal}
-%{__autoconf}
-%{__automake}
-%configure \
- --disable-schemas-install
-%{__make}
+%meson build \
+ %{?with_apidocs:-Dgtk_doc=true}
+
+%ninja_build -C build
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT \
- GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
+%ninja_install -C build
+
+%if %{with apidocs}
+install -d $RPM_BUILD_ROOT%{_gtkdocdir}
+%{__mv} $RPM_BUILD_ROOT%{_docdir}/gtkhex-4.0 $RPM_BUILD_ROOT%{_gtkdocdir}
+%endif
-%find_lang %{name} --with-gnome --all-name
+%find_lang %{name} --with-gnome
%clean
rm -rf $RPM_BUILD_ROOT
%post
-/sbin/ldconfig
-%scrollkeeper_update_post
-%gconf_schema_install ghex2.schemas
-
-%preun
-%gconf_schema_uninstall ghex2.schemas
+%update_icon_cache hicolor
+%glib_compile_schemas
%postun
-/sbin/ldconfig
-%scrollkeeper_update_postun
+%update_icon_cache hicolor
+%glib_compile_schemas
+
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc AUTHORS ChangeLog README
-%attr(755,root,root) %{_bindir}/*
-%attr(755,root,root) %{_libdir}/libgtkhex.so.*.*.*
-%{_desktopdir}/*.desktop
-%{_pixmapsdir}/*
-%{_datadir}/gnome-2.0/ui/*
-%{_sysconfdir}/gconf/schemas/*
-%{_omf_dest_dir}/%{name}
+%doc NEWS README.md
+%attr(755,root,root) %{_bindir}/ghex
+%dir %{_libdir}/gtkhex-4.0
+%attr(755,root,root) %{_libdir}/gtkhex-4.0/libhex-buffer-mmap.so
+%{_datadir}/glib-2.0/schemas/org.gnome.GHex.gschema.xml
+%{_datadir}/metainfo/org.gnome.GHex.appdata.xml
+%{_desktopdir}/org.gnome.GHex.desktop
+%{_iconsdir}/hicolor/scalable/apps/org.gnome.GHex.svg
+%{_iconsdir}/hicolor/scalable/apps/org.gnome.GHex.Devel.svg
+%{_iconsdir}/hicolor/symbolic/apps/org.gnome.GHex-symbolic.svg
+
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgtkhex-4.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgtkhex-4.so.0
+%{_libdir}/girepository-1.0/Hex-4.typelib
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libgtkhex.so
-%{_libdir}/libgtkhex.la
-%{_includedir}/*
-%{_pkgconfigdir}/*.pc
+%attr(755,root,root) %{_libdir}/libgtkhex-4.so
+%{_includedir}/gtkhex-4
+%{_datadir}/gir-1.0/Hex-4.gir
+%{_pkgconfigdir}/gtkhex-4.pc
%files static
%defattr(644,root,root,755)
-%{_libdir}/*.a
+%{_libdir}/libgtkhex-4.a
+
+%if %{with apidocs}
+%files apidocs
+%defattr(644,root,root,755)
+%{_gtkdocdir}/gtkhex-4.0
+%endif