Bug 1317692

Summary: Please move WebKitPluginProcess2 to a separate package
Product: [Fedora] Fedora Reporter: David Shea <dshea>
Component: webkitgtk4Assignee: Tomas Popela <tpopela>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: avv.marengoni, dshea, ignatenko, klember, mcatanzaro+wrong-account-do-not-cc, tpopela
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: webkitgtk4-2.11.91-2.fc25 webkitgtk4-2.12.0-3.fc24 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-04-12 09:36:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description David Shea 2016-03-14 21:57:58 UTC
Description of problem:

/usr/libexec/webkit2gtk-4.0/WebKitPluginProcess2 is included in the webkitgtk4 package in order to support gtk2 plugins. For one, it's huge (~40MB), and for two, it pulls in a gtk2 dependency in environments that don't particularly care about gtk2 plugins, like the boot.iso.

Please provide a way to not install this binary and its associated dependencies. I don't know offhand the best way to keep it installed for users that expect this functionality. Maybe a Recommends: from the main package?


Version-Release number of selected component (if applicable):
webkitgtk4-2.11.91-1.fc25.x86_64

Comment 1 Michael Catanzaro 2016-03-15 04:02:55 UTC
Seems like a good idea to me.

(In reply to David Shea from comment #0)
> Description of problem:
> 
> /usr/libexec/webkit2gtk-4.0/WebKitPluginProcess2 is included in the
> webkitgtk4 package in order to support gtk2 plugins. For one, it's huge
> (~40MB), and for two, it pulls in a gtk2 dependency in environments that
> don't particularly care about gtk2 plugins, like the boot.iso.

Hm, is the boot.iso the live image, or something else? I want to keep GTK+2 plugin support around by default on the Workstation product.

> Please provide a way to not install this binary and its associated
> dependencies. I don't know offhand the best way to keep it installed for
> users that expect this functionality. Maybe a Recommends: from the main
> package?

I think a Recommends is best, that way you can get rid of it if you don't want it, but all users still get it by default.

Comment 2 David Shea 2016-03-15 13:36:43 UTC
boot.iso as in the netinst environment created by lorax. The Server dvd would be the same thing, just with the addition of a package repository. webkitgtk is pulled in as a dependency of yelp, which is used for the help within anaconda. Plugin support is not an issue there.

Comment 3 Tomas Popela 2016-03-15 16:03:16 UTC
There is a scratch build available with the change you suggested:

http://koji.fedoraproject.org/koji/taskinfo?taskID=13353605

and the patch is here

http://paste.fedoraproject.org/340373/14580573/

Everything OK from your POV?

Comment 4 David Shea 2016-03-15 17:58:47 UTC
(In reply to Tomas Popela from comment #3)
> There is a scratch build available with the change you suggested:
> 
> http://koji.fedoraproject.org/koji/taskinfo?taskID=13353605
> 
> and the patch is here
> 
> http://paste.fedoraproject.org/340373/14580573/
> 
> Everything OK from your POV?


Works great, thank you. I created a local repo with these packages and confirmed that the plugin-process-gtk2 package is not added to boot.iso, and it is added when using anaconda to create workstation live media (which includes lmc-created live images).

Comment 5 Michael Catanzaro 2016-03-31 14:54:01 UTC
It's not being installed on upgrades. We need to find some way to make sure it's installed on the first upgrade, else we'll have to change it to Requires to make sure all users get it in an upgrade. :(

This seems like a problem that must have been solved before, but I don't have any ideas.

Comment 6 Michael Catanzaro 2016-03-31 14:55:40 UTC
Also, we probably want (to upstream) this Debian patch:

diff --git a/Source/WebKit2/UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp b/Source/WebKit2/UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp
index cfe9bd7..35afe9f 100644
--- a/Source/WebKit2/UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp
+++ b/Source/WebKit2/UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp
@@ -33,6 +33,7 @@
 
 #include "NetscapePluginModule.h"
 #include "PluginSearchPath.h"
+#include "ProcessExecutablePath.h"
 #include <WebCore/FileSystem.h>
 
 #if PLATFORM(GTK)
@@ -69,8 +70,17 @@ Vector<String> PluginInfoStore::individualPluginPaths()
 bool PluginInfoStore::getPluginInfo(const String& pluginPath, PluginModuleInfo& plugin)
 {
 #if PLATFORM(GTK)
-    if (PluginInfoCache::singleton().getPluginInfo(pluginPath, plugin))
+    if (PluginInfoCache::singleton().getPluginInfo(pluginPath, plugin)) {
+#if ENABLE(PLUGIN_PROCESS_GTK2)
+        if (plugin.requiresGtk2) {
+            String pluginProcessPath = executablePathOfPluginProcess();
+            pluginProcessPath.append('2');
+            if (!fileExists(pluginProcessPath))
+                return false;
+        }
+#endif
         return true;
+    }
 
     if (NetscapePluginModule::getPluginInfo(pluginPath, plugin)) {
         PluginInfoCache::singleton().updatePluginInfo(pluginPath, plugin);
diff --git a/Source/WebKit2/UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp b/Source/WebKit2/UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp
index fd25e74..9779b4d 100644
--- a/Source/WebKit2/UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp
+++ b/Source/WebKit2/UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp
@@ -87,13 +87,16 @@ bool PluginProcessProxy::scanPlugin(const String& pluginPath, RawPluginMetaData&
 
 #if PLATFORM(GTK)
     bool requiresGtk2 = pluginRequiresGtk2(pluginPath);
-    if (requiresGtk2)
+    if (requiresGtk2) {
 #if ENABLE(PLUGIN_PROCESS_GTK2)
         pluginProcessPath.append('2');
+        if (!fileExists(pluginProcessPath))
+            return false;
 #else
         return false;
 #endif
 #endif
+    }
 
     CString binaryPath = fileSystemRepresentation(pluginProcessPath);
     CString pluginPathCString = fileSystemRepresentation(pluginPath);

Comment 7 Michael Catanzaro 2016-03-31 19:29:47 UTC
Talking with Igor, we think something like this would work:

%package        plugin-process-gtk2
Summary:        GTK+ 2 based NPAPI plugins support for %{name}
Obsoletes:	%{name} <= 2.12.0-1

Comment 8 Michael Catanzaro 2016-04-06 20:47:15 UTC
Building this now:

http://pkgs.fedoraproject.org/cgit/rpms/webkitgtk4.git/commit/?id=8aa1fbd6e27d06abbf0a7be8e35844425a44c737

Dunno a good way to test this, so planning to put it into updates-testing, wait a few days, then try updating to see if it works.

Comment 9 Igor Gnatenko 2016-04-07 07:28:21 UTC
(In reply to Michael Catanzaro from comment #8)
> Building this now:
> 
> http://pkgs.fedoraproject.org/cgit/rpms/webkitgtk4.git/commit/
> ?id=8aa1fbd6e27d06abbf0a7be8e35844425a44c737
> 
> Dunno a good way to test this, so planning to put it into updates-testing,
> wait a few days, then try updating to see if it works.

install old version (current), build new version, put into directory, run createrepo_c there, run dnf update --repofromurl tmp,/path/to/directory

and you will see if it works as expected

Comment 10 Fedora Update System 2016-04-07 12:15:26 UTC
webkitgtk4-2.12.0-2.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-1109d9d293

Comment 11 Fedora Update System 2016-04-07 12:15:35 UTC
webkitgtk4-2.12.0-2.fc22 has been submitted as an update to Fedora 22. https://bodhi.fedoraproject.org/updates/FEDORA-2016-104977b1a1

Comment 12 Fedora Update System 2016-04-07 12:15:40 UTC
webkitgtk4-2.12.0-2.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-ce68f48692

Comment 13 Fedora Update System 2016-04-08 16:53:13 UTC
webkitgtk4-2.12.0-2.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-ce68f48692

Comment 14 Fedora Update System 2016-04-08 18:43:48 UTC
webkitgtk4-2.12.0-3.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-7ea8abc46a

Comment 15 Fedora Update System 2016-04-09 18:52:35 UTC
webkitgtk4-2.12.0-3.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-7ea8abc46a

Comment 16 Michael Catanzaro 2016-04-10 16:03:23 UTC
Installing:
 webkitgtk4-plugin-process-gtk2 x86_64 2.12.0-3.fc23      updates-testing 8.5 M
     replacing  webkitgtk4.x86_64 2.12.0-1.fc23

^ Works :)

Comment 17 Fedora Update System 2016-04-12 09:36:44 UTC
webkitgtk4-2.12.0-3.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 18 Avvocato Andrea Marengoni 2016-07-19 10:18:32 UTC
Good morning. I don't know if it's the same problem, but I'm noting with Fedora 24, whenever with Ephipany (Gnome Web) load a page, you reported a problem with the same component of this bug. Because I saw that you rightly invited, once the passage of the package to the repository, see the stable Fedora 24 prolem if you presented, I thought I'd add this comment, although I am not sure the reason for the problems is the same. Avvcivil

Comment 19 Tomas Popela 2016-10-31 11:24:20 UTC
(In reply to Avvocato Andrea Marengoni from comment #18)
> Good morning. I don't know if it's the same problem, but I'm noting with
> Fedora 24, whenever with Ephipany (Gnome Web) load a page, you reported a
> problem with the same component of this bug. Because I saw that you rightly
> invited, once the passage of the package to the repository, see the stable
> Fedora 24 prolem if you presented, I thought I'd add this comment, although
> I am not sure the reason for the problems is the same. Avvcivil

Please open a new bug report for Epiphany.