diff --git a/SOURCES/optional-webkitgtk.patch b/SOURCES/optional-webkitgtk.patch new file mode 100644 index 0000000..b8e3a92 --- /dev/null +++ b/SOURCES/optional-webkitgtk.patch @@ -0,0 +1,67 @@ +diff --git a/configure.ac b/configure.ac +index 98ce0c2..9d69588 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -71,8 +71,7 @@ PKG_CHECK_MODULES(SUSHI, + libmusicbrainz5 + evince-document-3.0 + evince-view-3.0 +- gtksourceview-3.0 +- webkit2gtk-4.0) ++ gtksourceview-3.0) + + GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable glib_compile_resources gio-2.0` + AC_SUBST(GLIB_COMPILE_RESOURCES) +diff --git a/src/js/viewers/html.js b/src/js/viewers/html.js +index 5135e2b..c7d078f 100644 +--- a/src/js/viewers/html.js ++++ b/src/js/viewers/html.js +@@ -28,12 +28,22 @@ const Gtk = imports.gi.Gtk; + const GLib = imports.gi.GLib; + const Lang = imports.lang; + const Sushi = imports.gi.Sushi; +-const WebKit = imports.gi.WebKit2; + + const MimeHandler = imports.ui.mimeHandler; + const Utils = imports.ui.utils; + +-const HTMLRenderer = new Lang.Class({ ++var WebKit; ++try { ++ imports.gi.versions.WebKit2 = '4.0'; ++ WebKit = imports.gi.WebKit2; ++} catch(e) { ++} ++ ++function _isAvailable() { ++ return WebKit !== undefined; ++} ++ ++var HTMLRenderer = _isAvailable() ? new Lang.Class({ + Name: 'HTMLRenderer', + + _init : function(args) { +@@ -89,13 +99,15 @@ const HTMLRenderer = new Lang.Class({ + + return this._toolbarActor; + } +-}); ++}) : undefined; + +-let handler = new MimeHandler.MimeHandler(); +-let renderer = new HTMLRenderer(); ++if (_isAvailable()) { ++ let handler = new MimeHandler.MimeHandler(); ++ let renderer = new HTMLRenderer(); + +-let mimeTypes = [ +- 'text/html' +-]; ++ let mimeTypes = [ ++ 'text/html' ++ ]; + +-handler.registerMimeTypes(mimeTypes, renderer); ++ handler.registerMimeTypes(mimeTypes, renderer); ++} + diff --git a/SPECS/sushi.spec b/SPECS/sushi.spec index aadeb18..f51f3ba 100644 --- a/SPECS/sushi.spec +++ b/SPECS/sushi.spec @@ -1,12 +1,19 @@ Name: sushi Version: 3.28.3 -Release: 1%{?dist} +Release: 3%{?dist} Summary: A quick previewer for Nautilus License: GPLv2+ with exceptions URL: https://wiki.gnome.org/ThreePointOne/Features/FilePreviewing Source0: https://download.gnome.org/sources/%{name}/3.28/%{name}-%{version}.tar.xz +# https://gitlab.gnome.org/GNOME/sushi/-/merge_requests/53 +Patch0: optional-webkitgtk.patch + +# Build deps for optional-webkitgtk.patch, which modifies configure.ac +BuildRequires: autoconf +BuildRequires: automake + BuildRequires: intltool BuildRequires: gjs-devel BuildRequires: pkgconfig(clutter-gst-3.0) @@ -28,7 +35,9 @@ file manager. %prep -%setup -q +%autosetup -p1 +# autoreconf is for optional-webkitgtk.patch +autoreconf -fi %build %configure --disable-static @@ -52,6 +61,14 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' %changelog +* Mon Apr 15 2024 Michael Catanzaro - 3.28.3-3 +- Use autosetup so WebKitGTK patch actually gets applied, and rewrite the patch to work + Resolves: RHEL-26699 + +* Thu Mar 07 2024 Michael Catanzaro - 3.28.3-2 +- Allow running with WebKitGTK uninstalled + Resolves: RHEL-26699 + * Mon Apr 23 2018 Kalev Lember - 3.28.3-1 - Update to 3.28.3