<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>210154</bug_id>
          
          <creation_ts>2020-04-07 14:14:12 -0700</creation_ts>
          <short_desc>[GTK][CMake] Introduce an USE_GTK4 build option</short_desc>
          <delta_ts>2020-04-13 08:01:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>210110</dependson>
          <blocked>210100</blocked>
    
    <blocked>210160</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>csaavedra</cc>
    
    <cc>darin</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1638793</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-07 14:14:12 -0700</bug_when>
    <thetext>Both GTK3 and GTK4 can be installed in parallel in the same system.
We would like to make it possible to build WebKitGTK targeting
either version and have builds for both to be parallel-installable
as well. We need a way of telling CMake which version to pick when
configuring a build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638797</commentid>
    <comment_count>1</comment_count>
      <attachid>395737</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-07 14:20:57 -0700</bug_when>
    <thetext>Created attachment 395737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638907</commentid>
    <comment_count>2</comment_count>
      <attachid>395737</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-04-07 17:59:58 -0700</bug_when>
    <thetext>Comment on attachment 395737
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=395737&amp;action=review

LGTM.

Since this is important, Carlos will want to review it before it lands.

&gt; Source/cmake/OptionsGTK.cmake:10
&gt; +    set(WEBKITGTK_API_VERSION 5.0)

Maybe we could use API version 0.0 and call it libwebkit2gtk4-0.0? (And eventually bump to 1.0 once it&apos;s ready to become stable?) That might be less confusing than expecting people to know libwebkit2gtk-5.0 in the GTK 4 version? (Yes, I know it doesn&apos;t match GTK 3&apos;s libwebkit2gtk-4.0, but we can&apos;t ever change that....)

That might also be a nice nudge to distros on how to standardize the package naming. Distros are currently split between webkit2gtk and webkit2gtk3 (and previously, webkitgtk3 and webkitgtk4, amazingly confusing!). I think in Fedora/RHEL we will call this webkit2gtk4, so....

&gt; Source/cmake/OptionsGTK.cmake:13
&gt; +    set(GTK_MINIMUM_VERSION 3.98.2)
&gt; +    CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 83 0 0)
&gt; +    CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 36 0 0)

Doesn&apos;t matter, but I would reset the ABI versions to 0 0 0, since the API version is being bumped.

Consider that even the GTK 3 version might eventually need to break ABI, even if the current goal is to never do that. (E.g. we are dangerously low on padding in the WebKitWebView class struct, and I think ABI break is nicer than just not adding a vfunc for new signals. An ABI break every 5-10 years is not horrible; it&apos;s the *API* breaks that are hard for distros.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638950</commentid>
    <comment_count>3</comment_count>
      <attachid>395737</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-07 23:41:01 -0700</bug_when>
    <thetext>Comment on attachment 395737
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=395737&amp;action=review

I think we need more changes for the API bump. We need to add new doc files, pkg-config, etc. Do you plan to do that in follow up patches?

&gt;&gt; Source/cmake/OptionsGTK.cmake:10
&gt;&gt; +    set(WEBKITGTK_API_VERSION 5.0)
&gt; 
&gt; Maybe we could use API version 0.0 and call it libwebkit2gtk4-0.0? (And eventually bump to 1.0 once it&apos;s ready to become stable?) That might be less confusing than expecting people to know libwebkit2gtk-5.0 in the GTK 4 version? (Yes, I know it doesn&apos;t match GTK 3&apos;s libwebkit2gtk-4.0, but we can&apos;t ever change that....)
&gt; 
&gt; That might also be a nice nudge to distros on how to standardize the package naming. Distros are currently split between webkit2gtk and webkit2gtk3 (and previously, webkitgtk3 and webkitgtk4, amazingly confusing!). I think in Fedora/RHEL we will call this webkit2gtk4, so....

I think that complicates things, since bumping the ABI is not just using a new version of WEBKITGTK_API_VERSION. If we want to do it, maybe we can also remove 2, since webkit2 is the only webkit layer nowadays.

&gt;&gt; Source/cmake/OptionsGTK.cmake:13
&gt;&gt; +    CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 36 0 0)
&gt; 
&gt; Doesn&apos;t matter, but I would reset the ABI versions to 0 0 0, since the API version is being bumped.
&gt; 
&gt; Consider that even the GTK 3 version might eventually need to break ABI, even if the current goal is to never do that. (E.g. we are dangerously low on padding in the WebKitWebView class struct, and I think ABI break is nicer than just not adding a vfunc for new signals. An ABI break every 5-10 years is not horrible; it&apos;s the *API* breaks that are hard for distros.)

I agree, it&apos;s actually a new library, so we don&apos;t need to follow the numbers of the other library.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638964</commentid>
    <comment_count>4</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-08 00:56:02 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; Comment on attachment 395737 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=395737&amp;action=review
&gt; 
&gt; I think we need more changes for the API bump. We need to add new doc files,
&gt; pkg-config, etc. Do you plan to do that in follow up patches?

Yes, there will be follow-ups. The plan is to get to the point where we
can build against GTK4 first, so we can progressively write the code that
has to be different inside USE(GTK4) conditionals and/or stub them out.
Once we have done the minimum amount of work needed to get a WebKitWebView
showing some content, we can look into ironing out reference documentation, installation, and so on.

As a reminder: bug #210100 is a meta-bug to track the overall progress.

&gt; &gt;&gt; Source/cmake/OptionsGTK.cmake:10
&gt; &gt;&gt; +    set(WEBKITGTK_API_VERSION 5.0)
&gt; &gt; 
&gt; &gt; Maybe we could use API version 0.0 and call it libwebkit2gtk4-0.0? (And eventually bump to 1.0 once it&apos;s ready to become stable?) That might be less confusing than expecting people to know libwebkit2gtk-5.0 in the GTK 4 version? (Yes, I know it doesn&apos;t match GTK 3&apos;s libwebkit2gtk-4.0, but we can&apos;t ever change that....)
&gt; &gt; 
&gt; &gt; That might also be a nice nudge to distros on how to standardize the package naming. Distros are currently split between webkit2gtk and webkit2gtk3 (and previously, webkitgtk3 and webkitgtk4, amazingly confusing!). I think in Fedora/RHEL we will call this webkit2gtk4, so....
&gt; 
&gt; I think that complicates things, since bumping the ABI is not just using a
&gt; new version of WEBKITGTK_API_VERSION. If we want to do it, maybe we can also
&gt; remove 2, since webkit2 is the only webkit layer nowadays.

GTK4 went with simplifying the installed library name. It is using “libgtk-4”
as basename. I think we could do the same and use “libwebkitgtk-4”. This way
we get to remove the “2” (as there will be no WebKit1), it will encourage
distributions to use “webkitgtk4” or “webkitgtk-4” as package name, and it
will be clear which GTK version the library uses.

WDYT?

&gt; &gt;&gt; Source/cmake/OptionsGTK.cmake:13
&gt; &gt;&gt; +    CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 36 0 0)
&gt; &gt; 
&gt; &gt; Doesn&apos;t matter, but I would reset the ABI versions to 0 0 0, since the API version is being bumped.
&gt; &gt; 
&gt; &gt; Consider that even the GTK 3 version might eventually need to break ABI, even if the current goal is to never do that. (E.g. we are dangerously low on padding in the WebKitWebView class struct, and I think ABI break is nicer than just not adding a vfunc for new signals. An ABI break every 5-10 years is not horrible; it&apos;s the *API* breaks that are hard for distros.)
&gt; 
&gt; I agree, it&apos;s actually a new library, so we don&apos;t need to follow the numbers
&gt; of the other library.

Good point, let&apos;s reset the libtool triplets to be (0 0 0) for both libraries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639022</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-04-08 06:21:17 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; I think that complicates things, since bumping the ABI is not just using a
&gt; new version of WEBKITGTK_API_VERSION. If we want to do it, maybe we can also
&gt; remove 2, since webkit2 is the only webkit layer nowadays.

I thought about whether to suggest this. +1 to removing the 2.

(In reply to Adrian Perez from comment #4)
&gt; GTK4 went with simplifying the installed library name. It is using “libgtk-4”
&gt; as basename. I think we could do the same and use “libwebkitgtk-4”. This way
&gt; we get to remove the “2” (as there will be no WebKit1), it will encourage
&gt; distributions to use “webkitgtk4” or “webkitgtk-4” as package name, and it
&gt; will be clear which GTK version the library uses.
&gt; 
&gt; WDYT?

I&apos;m OK with that. There, the API version is &quot;4&quot;. Makes sense. In the unlikely event that we do need to break API in the future after the first stable release, we can always just bump it to 4.1 or something, so it would still be possible to parallel-install with the old version if needed. And before the first stable release, it should be fine to just bump soname whenever we change things.

So the final result would be: libwebkitgtk-4.so. I like it. Sadly, the potential for confusion with libwebkit2gtk-4.0.so (GTK 3) is very high. Maybe libwebkitgtk4.so would be a bit less confusing, but that name doesn&apos;t look quite as nice to me. Oh well. Whatever you pick will be fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639081</commentid>
    <comment_count>6</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2020-04-08 08:56:36 -0700</bug_when>
    <thetext>I think that from the distribution point of view any solution is fine
as long as the library name, pkg-config .pc file, etc. are different.

My understanding is that:

   - There will probably be an API break.

   - As a result, there will be a different set of header files.

   - The same javascriptcore build can in principle be shared between
     both versions of WebKitGTK (this is not essential).

So in the end this is going to be similar to the previous change when we
switched to the WebKit 2 API.

If we want to take the chance to remove the &apos;2&apos; from the library name,
that&apos;s fine with me (libwebkitgtk-X.X or whatever).

I don&apos;t have a strong opinion about the name itself. For reference,
there was a time when we had GTK2 and GTK3 builds of the same
WebKitGTK sources. This is what we had in configure.ac:

    case &quot;$with_gtk&quot; in
         2.0) GTK_REQUIRED_VERSION=$GTK2_REQUIRED_VERSION
              GTK_API_VERSION=2.0
              WEBKITGTK_API_MAJOR_VERSION=1
              WEBKITGTK_API_MINOR_VERSION=0
              WEBKITGTK_API_VERSION=1.0
              WEBKITGTK_PC_NAME=webkit
              GAIL_PC_NAME=gail
              GAIL_REQUIRED_VERSION=$GAIL2_REQUIRED_VERSION
              ;;
         3.0) GTK_REQUIRED_VERSION=$GTK3_REQUIRED_VERSION
              GTK_API_VERSION=3.0
              WEBKITGTK_API_MAJOR_VERSION=3
              WEBKITGTK_API_MINOR_VERSION=0
              WEBKITGTK_API_VERSION=3.0
              WEBKITGTK_PC_NAME=webkitgtk
              GAIL_PC_NAME=gail-3.0
              GAIL_REQUIRED_VERSION=$GAIL3_REQUIRED_VERSION
              ;;
    esac

So this would produce libwebkitgtk-1.0.so.* for the GTK2 build and
libwebkitgtk-3.0.so.* for the GTK3 build (even though the actual C API
was the same if I&apos;m not wrong).

In Debian we&apos;ll probably have to keep the webkit2gtk name in the
source package. No big deal, it&apos;s actually convenient to keep using
the same source package (the naming is not so important), but we can
only do it as long as

   1) We keep producing both the gtk3 and gtk4 builds from the exact
      same sources.

   2) The gtk3 build remains API and ABI compatible with the existing
      versions (e.g. 2.28.0)

We want to avoid a situation where we are not maintaining the GTK3
version anymore but we still have apps using it. Do you expect that
we&apos;ll have problems keeping both GTK versions for as long as the
overall GTK3 -&gt; GTK4 transition lasts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639542</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-09 02:41:09 -0700</bug_when>
    <thetext>(In reply to Alberto Garcia from comment #6)
&gt; I think that from the distribution point of view any solution is fine
&gt; as long as the library name, pkg-config .pc file, etc. are different.

And package version, I guess, since we are bumping ABI version, it would be weird to use 2.30 as the version number (or 2.32), I guess it should be 3.0 for the new API.

&gt; My understanding is that:
&gt; 
&gt;    - There will probably be an API break.

That&apos;s for sure, we are using GTK APIs in our public API that no longer exist in GTK4. The idea is to take advantage fo the API break to remove all deprecated APIs, revise some existing ones like the load events, give more padding to public class structs, etc.

&gt;    - As a result, there will be a different set of header files.

Right, it&apos;s like a new API in the end, like the switch to WebKit2, but with fewer changes and in the same codebase.

&gt;    - The same javascriptcore build can in principle be shared between
&gt;      both versions of WebKitGTK (this is not essential).

Right, and WebDriver, since it doesn&apos;t use GTK at all.

&gt; So in the end this is going to be similar to the previous change when we
&gt; switched to the WebKit 2 API.

Yes, The main difference from the code maintenance point of view is that we had different code paths WebKit and WebKit2 folders in the source tree, making everything easier.

&gt; If we want to take the chance to remove the &apos;2&apos; from the library name,
&gt; that&apos;s fine with me (libwebkitgtk-X.X or whatever).

But only for the library created when compiling with gtk4, the gtk3 one would remain the same, API/ABI backwards compatible.

&gt; I don&apos;t have a strong opinion about the name itself. For reference,
&gt; there was a time when we had GTK2 and GTK3 builds of the same
&gt; WebKitGTK sources. This is what we had in configure.ac:
&gt; 
&gt;     case &quot;$with_gtk&quot; in
&gt;          2.0) GTK_REQUIRED_VERSION=$GTK2_REQUIRED_VERSION
&gt;               GTK_API_VERSION=2.0
&gt;               WEBKITGTK_API_MAJOR_VERSION=1
&gt;               WEBKITGTK_API_MINOR_VERSION=0
&gt;               WEBKITGTK_API_VERSION=1.0
&gt;               WEBKITGTK_PC_NAME=webkit
&gt;               GAIL_PC_NAME=gail
&gt;               GAIL_REQUIRED_VERSION=$GAIL2_REQUIRED_VERSION
&gt;               ;;
&gt;          3.0) GTK_REQUIRED_VERSION=$GTK3_REQUIRED_VERSION
&gt;               GTK_API_VERSION=3.0
&gt;               WEBKITGTK_API_MAJOR_VERSION=3
&gt;               WEBKITGTK_API_MINOR_VERSION=0
&gt;               WEBKITGTK_API_VERSION=3.0
&gt;               WEBKITGTK_PC_NAME=webkitgtk
&gt;               GAIL_PC_NAME=gail-3.0
&gt;               GAIL_REQUIRED_VERSION=$GAIL3_REQUIRED_VERSION
&gt;               ;;
&gt;     esac
&gt; 
&gt; So this would produce libwebkitgtk-1.0.so.* for the GTK2 build and
&gt; libwebkitgtk-3.0.so.* for the GTK3 build (even though the actual C API
&gt; was the same if I&apos;m not wrong).

Exactly, that&apos;s a key point. In this case we supported gtk2 and gtk3 for the very same WebKit1 API. We decided not to support gtk2 in the WebKit2 API from the very beginning because it was going to be a huge pain.

&gt; In Debian we&apos;ll probably have to keep the webkit2gtk name in the
&gt; source package. No big deal, it&apos;s actually convenient to keep using
&gt; the same source package (the naming is not so important), but we can
&gt; only do it as long as
&gt; 
&gt;    1) We keep producing both the gtk3 and gtk4 builds from the exact
&gt;       same sources.

I&apos;m not sure anymore about this, I&apos;m starting to think that using a separate branch for gtk3 (like gtk itself did) is the way to go.

&gt;    2) The gtk3 build remains API and ABI compatible with the existing
&gt;       versions (e.g. 2.28.0)

Yes, that&apos;s for sure.

&gt; We want to avoid a situation where we are not maintaining the GTK3
&gt; version anymore but we still have apps using it. Do you expect that
&gt; we&apos;ll have problems keeping both GTK versions for as long as the
&gt; overall GTK3 -&gt; GTK4 transition lasts?

We will keep maintaining the gtk3 support as long as gtk3 is supported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639548</commentid>
    <comment_count>8</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2020-04-09 02:59:00 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #7)

&gt; &gt; I think that from the distribution point of view any solution is
&gt; &gt; fine as long as the library name, pkg-config .pc file, etc. are
&gt; &gt; different.

&gt; And package version, I guess, since we are bumping ABI version, it
&gt; would be weird to use 2.30 as the version number (or 2.32), I guess
&gt; it should be 3.0 for the new API.

Ok, no problem.

&gt; &gt;    1) We keep producing both the gtk3 and gtk4 builds from the
&gt; &gt;       exact same sources.

&gt; I&apos;m not sure anymore about this, I&apos;m starting to think that using a
&gt; separate branch for gtk3 (like gtk itself did) is the way to go.

But then you would publish two separate tarballs in webkitgtk.org ?
How are you going to name them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639551</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-09 03:13:43 -0700</bug_when>
    <thetext>(In reply to Alberto Garcia from comment #8)
&gt; (In reply to Carlos Garcia Campos from comment #7)
&gt; 
&gt; &gt; &gt; I think that from the distribution point of view any solution is
&gt; &gt; &gt; fine as long as the library name, pkg-config .pc file, etc. are
&gt; &gt; &gt; different.
&gt; 
&gt; &gt; And package version, I guess, since we are bumping ABI version, it
&gt; &gt; would be weird to use 2.30 as the version number (or 2.32), I guess
&gt; &gt; it should be 3.0 for the new API.
&gt; 
&gt; Ok, no problem.
&gt; 
&gt; &gt; &gt;    1) We keep producing both the gtk3 and gtk4 builds from the
&gt; &gt; &gt;       exact same sources.
&gt; 
&gt; &gt; I&apos;m not sure anymore about this, I&apos;m starting to think that using a
&gt; &gt; separate branch for gtk3 (like gtk itself did) is the way to go.
&gt; 
&gt; But then you would publish two separate tarballs in webkitgtk.org ?
&gt; How are you going to name them?

webkitgtk-2.30.tar.xz
webkitgtk-3.0.tar.xz</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639559</commentid>
    <comment_count>10</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2020-04-09 03:49:58 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #9)
&gt; &gt; But then you would publish two separate tarballs in webkitgtk.org ?
&gt; &gt; How are you going to name them?
&gt;
&gt; webkitgtk-2.30.tar.xz
&gt; webkitgtk-3.0.tar.xz

And are you going to keep them (mostly) identical feature-wise except
for the GTK dependency and the API changes?

It sounds a bit confusing if a user wants to know that&apos;s the 3.x
equivalent of a 2.x release.

Also for security advisories ...

If you go that way, in Debian I&apos;d upload a new &apos;webkitgtk[4]&apos; source
package for the 3.x branch and keep the existing &apos;webkit2gtk&apos; package
for the 2.x branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639571</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-04-09 04:53:25 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #7)
&gt; And package version, I guess, since we are bumping ABI version, it would be
&gt; weird to use 2.30 as the version number (or 2.32), I guess it should be 3.0
&gt; for the new API.

That&apos;s going to be *really* confusing though. We&apos;ll need to remember that 2.30 GTK 3 version corresponds exactly to the 3.0 GTK 4 version. There&apos;s no reason to do that. It would only make sense if we were dropping backwards-compat with GTK 3 like we did during the WebKit2 transition.

&gt; I&apos;m not sure anymore about this, I&apos;m starting to think that using a separate branch for gtk3 (like gtk itself did) is the way to go.

That&apos;s going to be way harder to maintain than #ifdefs. Regularly rebasing the GTK 3 branch for stable releases would be a frustrating and unnecessary task. Twice as many stable branches...? Let&apos;s stick with #ifdefs.

I don&apos;t care if it shares the same tarball or not, but it *could* because there&apos;s not really any reason not to. We could even have shared with WPE (as long as the assets for both are provided in the same tarball) if we had wanted to; it doesn&apos;t really matter either way IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639590</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-09 05:40:58 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #11)
&gt; (In reply to Carlos Garcia Campos from comment #7)
&gt; &gt; And package version, I guess, since we are bumping ABI version, it would be
&gt; &gt; weird to use 2.30 as the version number (or 2.32), I guess it should be 3.0
&gt; &gt; for the new API.
&gt; 
&gt; That&apos;s going to be *really* confusing though. We&apos;ll need to remember that
&gt; 2.30 GTK 3 version corresponds exactly to the 3.0 GTK 4 version.

There&apos;s no corresponding version.

&gt; There&apos;s no
&gt; reason to do that. It would only make sense if we were dropping
&gt; backwards-compat with GTK 3 like we did during the WebKit2 transition.

We are. The API with gtk4 is a new API. I think we are mixing things here. The GTK version won&apos;t be just a build option like build with WPE renderer or not, it will generate a different library with a different API. That was easy to maintain for wk1/wk2 because we had different API directories, different API tests, etc. What are we going to do with the public headers? Is gtk-doc and gobject-introspection ready to work with two APIs in the same codebase? What happens with the Since tags in the API docs if we keep the same package version for both APIs?

&gt; &gt; I&apos;m not sure anymore about this, I&apos;m starting to think that using a separate branch for gtk3 (like gtk itself did) is the way to go.
&gt; 
&gt; That&apos;s going to be way harder to maintain than #ifdefs. Regularly rebasing
&gt; the GTK 3 branch for stable releases would be a frustrating and unnecessary
&gt; task. Twice as many stable branches...? Let&apos;s stick with #ifdefs.

We would need to decide, we could just keep the gtk3 branch in maintenance mode and only merge security fixes and important bug fixes like we do with our stable branches. Similar to what gtk3 branch will be in gtk itself, no?

&gt; I don&apos;t care if it shares the same tarball or not, but it *could* because
&gt; there&apos;s not really any reason not to. We could even have shared with WPE (as
&gt; long as the assets for both are provided in the same tarball) if we had
&gt; wanted to; it doesn&apos;t really matter either way IMO.

Again, does it make sense to break the API and keep the same project version number? Because again, this not just adding a build option to link against gtk4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639598</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-09 06:05:01 -0700</bug_when>
    <thetext>We have another option tha would simplify things. If GtkAction is the only API exposed that is not available in GTK4, that&apos;s already deprecated and we have the alternative, so we can simply not break the API. We can force to build without deprecated symbols when using GTK4. Then, once we remove the GTK3 support we might consider to break the API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639640</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-04-09 07:53:16 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #12)
&gt; We are. The API with gtk4 is a new API. I think we are mixing things here.
&gt; The GTK version won&apos;t be just a build option like build with WPE renderer or
&gt; not, it will generate a different library with a different API.

Of course.

&gt; That was
&gt; easy to maintain for wk1/wk2 because we had different API directories,
&gt; different API tests, etc. What are we going to do with the public headers?

I would use a lot of #ifdefs, and install the headers twice in separate directories. /usr/include/webkitgtk-4.0 for GTK 3, /usr/include/webkitgtk-4 for GTK 4. (Ugh, that&apos;s not confusing at all....)

&gt; Is gtk-doc and gobject-introspection ready to work with two APIs in the same
&gt; codebase? What happens with the Since tags in the API docs if we keep the
&gt; same package version for both APIs?

Good point, docs will not work. This will be a disaster. :/ I don&apos;t know what to do about it.

&gt; We would need to decide, we could just keep the gtk3 branch in maintenance
&gt; mode and only merge security fixes and important bug fixes like we do with
&gt; our stable branches. Similar to what gtk3 branch will be in gtk itself, no?

That&apos;s not at all realistic, though. Currently you maintain stable branches for six months. I think we could do nine months (matching Firefox ESR, the maximum that any web engine does). Maybe we could even do 12. But as the branch gets older, this gets really hard, really fast. Once we&apos;re past six months, we can&apos;t look to see what Safari is backporting anymore, for instance, because we&apos;ve outlived the Safari branch.

Most security bugs never get CVEs anyway and are not tracked as such.

If we want to avoid a second security apocalypse like we had with WebKitLegacy -&gt; WebKit2, then keeping GTK 3 in trunk is critical IMO.

&gt; Again, does it make sense to break the API and keep the same project version
&gt; number? Because again, this not just adding a build option to link against
&gt; gtk4.

Well it depends. If GTK 3 support remains in trunk, then yes, we should sync the version numbers and share releases. But if GTK 3 support gets removed from trunk and maintained only on a sidebranch, like you are planning, then I agree it would make sense to bump the version number. (But in this case, it will be an apocalypse for GTK 3 apps sooner rather than later, so I hope we don&apos;t do that.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639642</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-04-09 08:00:12 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #13)
&gt; We have another option tha would simplify things. If GtkAction is the only
&gt; API exposed that is not available in GTK4, that&apos;s already deprecated and we
&gt; have the alternative, so we can simply not break the API. We can force to
&gt; build without deprecated symbols when using GTK4. Then, once we remove the
&gt; GTK3 support we might consider to break the API.

I think both ways are OK.

GTK 4 is such a major API break that it makes sense to me to do API breaks only in the GTK 4 API, but of course we don&apos;t have to.

The two changes I really want to see are (a) sandbox enabled by default for apps using GTK 4, with no possibility to disable it, and (b) PSON enabled by default for apps using GTK 4. I also think there&apos;s also value in changing the snapshot API to not use cairo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640086</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-10 02:48:47 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; (In reply to Carlos Garcia Campos from comment #12)
&gt; &gt; We are. The API with gtk4 is a new API. I think we are mixing things here.
&gt; &gt; The GTK version won&apos;t be just a build option like build with WPE renderer or
&gt; &gt; not, it will generate a different library with a different API.
&gt; 
&gt; Of course.
&gt; 
&gt; &gt; That was
&gt; &gt; easy to maintain for wk1/wk2 because we had different API directories,
&gt; &gt; different API tests, etc. What are we going to do with the public headers?
&gt; 
&gt; I would use a lot of #ifdefs, and install the headers twice in separate
&gt; directories. /usr/include/webkitgtk-4.0 for GTK 3, /usr/include/webkitgtk-4
&gt; for GTK 4. (Ugh, that&apos;s not confusing at all....)
&gt; 
&gt; &gt; Is gtk-doc and gobject-introspection ready to work with two APIs in the same
&gt; &gt; codebase? What happens with the Since tags in the API docs if we keep the
&gt; &gt; same package version for both APIs?
&gt; 
&gt; Good point, docs will not work. This will be a disaster. :/ I don&apos;t know
&gt; what to do about it.
&gt; 
&gt; &gt; We would need to decide, we could just keep the gtk3 branch in maintenance
&gt; &gt; mode and only merge security fixes and important bug fixes like we do with
&gt; &gt; our stable branches. Similar to what gtk3 branch will be in gtk itself, no?
&gt; 
&gt; That&apos;s not at all realistic, though. Currently you maintain stable branches
&gt; for six months. I think we could do nine months (matching Firefox ESR, the
&gt; maximum that any web engine does). Maybe we could even do 12. But as the
&gt; branch gets older, this gets really hard, really fast. Once we&apos;re past six
&gt; months, we can&apos;t look to see what Safari is backporting anymore, for
&gt; instance, because we&apos;ve outlived the Safari branch.
&gt; 
&gt; Most security bugs never get CVEs anyway and are not tracked as such.
&gt; 
&gt; If we want to avoid a second security apocalypse like we had with
&gt; WebKitLegacy -&gt; WebKit2, then keeping GTK 3 in trunk is critical IMO.
&gt; 
&gt; &gt; Again, does it make sense to break the API and keep the same project version
&gt; &gt; number? Because again, this not just adding a build option to link against
&gt; &gt; gtk4.
&gt; 
&gt; Well it depends. If GTK 3 support remains in trunk, then yes, we should sync
&gt; the version numbers and share releases. But if GTK 3 support gets removed
&gt; from trunk and maintained only on a sidebranch, like you are planning, then
&gt; I agree it would make sense to bump the version number. (But in this case,
&gt; it will be an apocalypse for GTK 3 apps sooner rather than later, so I hope
&gt; we don&apos;t do that.)

I&apos;m not planning anything, just considering all the options we have to make a decision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640156</commentid>
    <comment_count>17</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-10 07:21:46 -0700</bug_when>
    <thetext>As it seems uncertain what exactly we will decide to do regarding
maintenance of the GTK3 support, I would at least like to land a
small patch which would allow us to work in trunk adding the GTK4
support in parallel, without branching for now. As we progress, I
think we will have a much better idea of whether it is reasonable
to continue supporting both GTK3 and GTK4 in trunk—if it gets to
the point where it starts to look unwieldy, we can create a GTK3
support branch at that point.

For those wondering: at the moment in my mind it sounds better to
keep both in trunk and buildable from the same tarballs, mainly
because that would automatically get both GTK3 and GTK4 all the
fixes and also allow having a GTK4 EWS builder. On the other hand,
there is quite some uncertainty about the amount of complexity that
having both versions supported in trunk will be, so I am definitely
open to reconsider as we know more :)

Checking all the previous messages, I will update the patch in this
bug to do the following when building against GTK4:

 - Add the USE_GTK4 build option.
 - Keep the same name+version for the JSC library, as ideally both
   GTK3 and GTK4 builds can use the same.
 - Leave the name of the WebKitWebDriver untouched, as it does not
   link to GTK.
 - Change the name+version of the main library to libwebkitgtk-5.0
   (major API version bump, GTK3 builds will keep using 4.x) removing
   the “2” from the name, and webkitgtk-5.0.pc for the pkg-config file.
 - Programs WebKit{Web,Network,*}Process will be installed into
   &lt;libdir&gt;/webkitgtk-5.0
 - Headers will be installed into &lt;prefix&gt;/include/webkitgtk-5.0

These changes are the path of least effort right now to allow installing
GTK3 and GTK4 builds in parallel for development. If we want to do more
changes we have still plenty of time before the first GTK4 stable release
comes out, and some more before applications start being ported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640164</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-10 07:54:58 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #17)
&gt; [...]
&gt;  - Change the name+version of the main library to libwebkitgtk-5.0
&gt;    (major API version bump, GTK3 builds will keep using 4.x) removing
&gt;    the “2” from the name, and webkitgtk-5.0.pc for the pkg-config file.
&gt;  - Programs WebKit{Web,Network,*}Process will be installed into
&gt;    &lt;libdir&gt;/webkitgtk-5.0
&gt;  - Headers will be installed into &lt;prefix&gt;/include/webkitgtk-5.0

I&apos;m curious, your idea its to do a new major release of WebKitGTK (from 2.X.Y to (maybe) 4.0.0?) or we will continue using a 2.x.y numeration schema for the release versions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640166</commentid>
    <comment_count>19</comment_count>
      <attachid>395737</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-10 07:59:10 -0700</bug_when>
    <thetext>Comment on attachment 395737
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=395737&amp;action=review

&gt;&gt;&gt;&gt; Source/cmake/OptionsGTK.cmake:10
&gt;&gt;&gt;&gt; +    set(WEBKITGTK_API_VERSION 5.0)
&gt;&gt;&gt; 
&gt;&gt;&gt; Maybe we could use API version 0.0 and call it libwebkit2gtk4-0.0? (And eventually bump to 1.0 once it&apos;s ready to become stable?) That might be less confusing than expecting people to know libwebkit2gtk-5.0 in the GTK 4 version? (Yes, I know it doesn&apos;t match GTK 3&apos;s libwebkit2gtk-4.0, but we can&apos;t ever change that....)
&gt;&gt;&gt; 
&gt;&gt;&gt; That might also be a nice nudge to distros on how to standardize the package naming. Distros are currently split between webkit2gtk and webkit2gtk3 (and previously, webkitgtk3 and webkitgtk4, amazingly confusing!). I think in Fedora/RHEL we will call this webkit2gtk4, so....
&gt;&gt; 
&gt;&gt; I think that complicates things, since bumping the ABI is not just using a new version of WEBKITGTK_API_VERSION. If we want to do it, maybe we can also remove 2, since webkit2 is the only webkit layer nowadays.
&gt; 
&gt; GTK4 went with simplifying the installed library name. It is using “libgtk-4”
&gt; as basename. I think we could do the same and use “libwebkitgtk-4”. This way
&gt; we get to remove the “2” (as there will be no WebKit1), it will encourage
&gt; distributions to use “webkitgtk4” or “webkitgtk-4” as package name, and it
&gt; will be clear which GTK version the library uses.
&gt; 
&gt; WDYT?

+1 to the idea of using libwebkitgtk-4. It will be less confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640203</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-10 09:03:51 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #17)
&gt; As it seems uncertain what exactly we will decide to do regarding
&gt; maintenance of the GTK3 support, I would at least like to land a
&gt; small patch which would allow us to work in trunk adding the GTK4
&gt; support in parallel, without branching for now. As we progress, I
&gt; think we will have a much better idea of whether it is reasonable
&gt; to continue supporting both GTK3 and GTK4 in trunk—if it gets to
&gt; the point where it starts to look unwieldy, we can create a GTK3
&gt; support branch at that point.

Ok.

&gt; For those wondering: at the moment in my mind it sounds better to
&gt; keep both in trunk and buildable from the same tarballs, mainly
&gt; because that would automatically get both GTK3 and GTK4 all the
&gt; fixes and also allow having a GTK4 EWS builder. On the other hand,
&gt; there is quite some uncertainty about the amount of complexity that
&gt; having both versions supported in trunk will be, so I am definitely
&gt; open to reconsider as we know more :)
&gt; 
&gt; Checking all the previous messages, I will update the patch in this
&gt; bug to do the following when building against GTK4:
&gt; 
&gt;  - Add the USE_GTK4 build option.
&gt;  - Keep the same name+version for the JSC library, as ideally both
&gt;    GTK3 and GTK4 builds can use the same.
&gt;  - Leave the name of the WebKitWebDriver untouched, as it does not
&gt;    link to GTK.
&gt;  - Change the name+version of the main library to libwebkitgtk-5.0
&gt;    (major API version bump, GTK3 builds will keep using 4.x) removing
&gt;    the “2” from the name, and webkitgtk-5.0.pc for the pkg-config file.
&gt;  - Programs WebKit{Web,Network,*}Process will be installed into
&gt;    &lt;libdir&gt;/webkitgtk-5.0
&gt;  - Headers will be installed into &lt;prefix&gt;/include/webkitgtk-5.0

For now I think we don&apos;t need to care about pkg-config nor installation, so I would just add the build option and add the new library.

&gt; These changes are the path of least effort right now to allow installing
&gt; GTK3 and GTK4 builds in parallel for development.

Do we need to install with GTK$ at this moment?

&gt; If we want to do more
&gt; changes we have still plenty of time before the first GTK4 stable release
&gt; comes out, and some more before applications start being ported.

I prefer to do fewer changes for now :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640412</commentid>
    <comment_count>21</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-10 16:16:37 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #20)
&gt; (In reply to Adrian Perez from comment #17)
&gt; &gt; As it seems uncertain what exactly we will decide to do regarding
&gt; &gt; maintenance of the GTK3 support, I would at least like to land a
&gt; &gt; small patch which would allow us to work in trunk adding the GTK4
&gt; &gt; support in parallel, without branching for now. As we progress, I
&gt; &gt; think we will have a much better idea of whether it is reasonable
&gt; &gt; to continue supporting both GTK3 and GTK4 in trunk—if it gets to
&gt; &gt; the point where it starts to look unwieldy, we can create a GTK3
&gt; &gt; support branch at that point.
&gt; 
&gt; Ok.
&gt; 
&gt; &gt; For those wondering: at the moment in my mind it sounds better to
&gt; &gt; keep both in trunk and buildable from the same tarballs, mainly
&gt; &gt; because that would automatically get both GTK3 and GTK4 all the
&gt; &gt; fixes and also allow having a GTK4 EWS builder. On the other hand,
&gt; &gt; there is quite some uncertainty about the amount of complexity that
&gt; &gt; having both versions supported in trunk will be, so I am definitely
&gt; &gt; open to reconsider as we know more :)
&gt; &gt; 
&gt; &gt; Checking all the previous messages, I will update the patch in this
&gt; &gt; bug to do the following when building against GTK4:
&gt; &gt; 
&gt; &gt;  - Add the USE_GTK4 build option.
&gt; &gt;  - Keep the same name+version for the JSC library, as ideally both
&gt; &gt;    GTK3 and GTK4 builds can use the same.
&gt; &gt;  - Leave the name of the WebKitWebDriver untouched, as it does not
&gt; &gt;    link to GTK.
&gt; &gt;  - Change the name+version of the main library to libwebkitgtk-5.0
&gt; &gt;    (major API version bump, GTK3 builds will keep using 4.x) removing
&gt; &gt;    the “2” from the name, and webkitgtk-5.0.pc for the pkg-config file.
&gt; &gt;  - Programs WebKit{Web,Network,*}Process will be installed into
&gt; &gt;    &lt;libdir&gt;/webkitgtk-5.0
&gt; &gt;  - Headers will be installed into &lt;prefix&gt;/include/webkitgtk-5.0
&gt; 
&gt; For now I think we don&apos;t need to care about pkg-config nor installation, so
&gt; I would just add the build option and add the new library.

Okay, let&apos;s do that.

&gt; &gt; These changes are the path of least effort right now to allow installing
&gt; &gt; GTK3 and GTK4 builds in parallel for development.
&gt; 
&gt; Do we need to install with GTK$ at this moment?

Not really; we can live with uninstalled builds for a good while :]

&gt; &gt; If we want to do more
&gt; &gt; changes we have still plenty of time before the first GTK4 stable release
&gt; &gt; comes out, and some more before applications start being ported.
&gt; 
&gt; I prefer to do fewer changes for now :-)

:-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640847</commentid>
    <comment_count>22</comment_count>
      <attachid>396271</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-13 07:24:57 -0700</bug_when>
    <thetext>Created attachment 396271
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640865</commentid>
    <comment_count>23</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-13 08:00:14 -0700</bug_when>
    <thetext>Committed r260006: &lt;https://trac.webkit.org/changeset/260006&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396271.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640866</commentid>
    <comment_count>24</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-13 08:01:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/61716297&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395737</attachid>
            <date>2020-04-07 14:20:57 -0700</date>
            <delta_ts>2020-04-13 07:24:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210154-20200408002055.patch</filename>
            <type>text/plain</type>
            <size>2789</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDA4ZWQy
ZjhmNjE2ZThmOWE2Y2Y1MDM5NDg2MWVhYWE5ODRiYzBlYzIuLjI1MzI2MGRlMWI2NDJhZGQ5YmM0
YzdmMDA2YjllZDRlYjYxYzBhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RL
LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC0xLDExICsxLDIy
IEBACiBpbmNsdWRlKEdOVUluc3RhbGxEaXJzKQogaW5jbHVkZShWZXJzaW9uaW5nVXRpbHMpCiAK
K1dFQktJVF9PUFRJT05fQkVHSU4oKQorV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0dUSzQgIldo
ZXRoZXIgdG8gZW5hYmxlIHVzYWdlIG9mIEdUSzQgaW5zdGVhZCBvZiBHVEszLiIgUFVCTElDIE9G
RikKKwogU0VUX1BST0pFQ1RfVkVSU0lPTigyIDI5IDApCi1zZXQoV0VCS0lUR1RLX0FQSV9WRVJT
SU9OIDQuMCkKIAotQ0FMQ1VMQVRFX0xJQlJBUllfVkVSU0lPTlNfRlJPTV9MSUJUT09MX1RSSVBM
RShXRUJLSVQgODIgMCA0NSkKLUNBTENVTEFURV9MSUJSQVJZX1ZFUlNJT05TX0ZST01fTElCVE9P
TF9UUklQTEUoSkFWQVNDUklQVENPUkUgMzUgMCAxNykKK2lmIChVU0VfR1RLNCkKKyAgICBzZXQo
V0VCS0lUR1RLX0FQSV9WRVJTSU9OIDUuMCkKKyAgICBzZXQoR1RLX01JTklNVU1fVkVSU0lPTiAz
Ljk4LjIpCisgICAgQ0FMQ1VMQVRFX0xJQlJBUllfVkVSU0lPTlNfRlJPTV9MSUJUT09MX1RSSVBM
RShXRUJLSVQgODMgMCAwKQorICAgIENBTENVTEFURV9MSUJSQVJZX1ZFUlNJT05TX0ZST01fTElC
VE9PTF9UUklQTEUoSkFWQVNDUklQVENPUkUgMzYgMCAwKQorZWxzZSAoKQorICAgIHNldChXRUJL
SVRHVEtfQVBJX1ZFUlNJT04gNC4wKQorICAgIHNldChHVEtfTUlOSU1VTV9WRVJTSU9OIDMuMjIu
MCkKKyAgICBDQUxDVUxBVEVfTElCUkFSWV9WRVJTSU9OU19GUk9NX0xJQlRPT0xfVFJJUExFKFdF
QktJVCA4MiAwIDQ1KQorICAgIENBTENVTEFURV9MSUJSQVJZX1ZFUlNJT05TX0ZST01fTElCVE9P
TF9UUklQTEUoSkFWQVNDUklQVENPUkUgMzUgMCAxNykKK2VuZGlmICgpCiAKICMgVGhlc2UgYXJl
IHNoYXJlZCB2YXJpYWJsZXMsIGJ1dCB3ZSBzcGVjaWFsIGNhc2UgdGhlaXIgZGVmaW5pdGlvbiBz
byB0aGF0IHdlIGNhbiB1c2UgdGhlCiAjIENNQUtFX0lOU1RBTExfKiB2YXJpYWJsZXMgdGhhdCBh
cmUgcG9wdWxhdGVkIGJ5IHRoZSBHTlVJbnN0YWxsRGlycyBtYWNyby4KQEAgLTI3LDcgKzM4LDcg
QEAgZmluZF9wYWNrYWdlKEZvbnRjb25maWcgMi44LjAgUkVRVUlSRUQpCiBmaW5kX3BhY2thZ2Uo
RnJlZXR5cGUgMi40LjIgUkVRVUlSRUQpCiBmaW5kX3BhY2thZ2UoTGliR2NyeXB0IDEuNi4wIFJF
UVVJUkVEKQogZmluZF9wYWNrYWdlKEdMSUIgMi40NC4wIFJFUVVJUkVEIENPTVBPTkVOVFMgZ2lv
IGdpby11bml4IGdvYmplY3QgZ3RocmVhZCBnbW9kdWxlKQotZmluZF9wYWNrYWdlKEdUSyAzLjIy
LjAgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoR1RLICR7R1RLX01JTklNVU1fVkVSU0lPTn0gUkVR
VUlSRUQpCiBmaW5kX3BhY2thZ2UoSGFyZkJ1enogMC45LjE4IFJFUVVJUkVEIENPTVBPTkVOVFMg
SUNVKQogZmluZF9wYWNrYWdlKElDVSA2MC4yIFJFUVVJUkVEIENPTVBPTkVOVFMgZGF0YSBpMThu
IHVjKQogZmluZF9wYWNrYWdlKEpQRUcgUkVRVUlSRUQpCkBAIC00NSw4ICs1Niw2IEBAIGZpbmRf
cGFja2FnZShHVEtVbml4UHJpbnQpCiBmaW5kX3BhY2thZ2UoT3BlbkdMKQogZmluZF9wYWNrYWdl
KE9wZW5HTEVTMikKIAotV0VCS0lUX09QVElPTl9CRUdJTigpCi0KIGluY2x1ZGUoR1N0cmVhbWVy
RGVmaW5pdGlvbnMpCiAKIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9BVEsgVFJVRSkKZGlm
ZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5ZDk0YmQ4YjQyMmZiOGVjODIy
YjVjNDg3NTNhZGQ2ZjA3NjkyMmE2Li5iM2E3NDlmNTgwMzU5NzlhZGJiOWI1YzBhMGMwOTQ0YWI0
YTExMzk5IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjAtMDQtMDcgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXVtDTWFrZV0gSW50cm9kdWNlIGFuIFVTRV9HVEs0IGJ1aWxk
IG9wdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEwMTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZTogQWRkIGEgbmV3IFVTRV9HVEs0IHB1Ymxp
YyBidWlsZCBvcHRpb24sIHdoaWNoIGRlZmF1bHRzCisgICAgICAgIHRvIEZBTFNFIGZvciBub3cs
IGFuZCBkZXBlbmRpbmcgb24gaXRzIHZhbHVlIHNldCBkaWZmZXJlbnQgQVBJIGFuZCBsaWJyYXJ5
IHZlcnNpb25zIHRvCisgICAgICAgIGFsbG93IGluc3RhbGxhdGlvbiBpbiBwYXJhbGxlbCBvZiBi
dWlsZHMgdGFyZ2V0aW5nIEdUSzMgYW5kIEdUSzQ7IGNob29zZSB0aGUgcmVxdWlyZWQKKyAgICAg
ICAgdmVyc2lvbiBvZiBHVEsgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGUgb3B0aW9uIGFz
IHdlbGwuCisKIDIwMjAtMDQtMDcgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBDTWFrZSBmaW5kIG1vZHVsZSBmb3IgR1RLNAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396271</attachid>
            <date>2020-04-13 07:24:57 -0700</date>
            <delta_ts>2020-04-13 08:00:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210154-20200413172455.patch</filename>
            <type>text/plain</type>
            <size>2996</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDZmZjhj
Mzk5MjJhNGYzMTI5YjY4N2FlMGY5ZDE1ZGUzZWRjNjRlMDMuLmZhNjhmNzg0OWQ5NTYwMTFjYzMy
NmI2YTNlNTAxNTk5MDA3MDZjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RL
LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC0xLDEwICsxLDIx
IEBACiBpbmNsdWRlKEdOVUluc3RhbGxEaXJzKQogaW5jbHVkZShWZXJzaW9uaW5nVXRpbHMpCiAK
K1dFQktJVF9PUFRJT05fQkVHSU4oKQorV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0dUSzQgIldo
ZXRoZXIgdG8gZW5hYmxlIHVzYWdlIG9mIEdUSzQgaW5zdGVhZCBvZiBHVEszLiIgUFVCTElDIE9G
RikKKwogU0VUX1BST0pFQ1RfVkVSU0lPTigyIDI5IDApCi1zZXQoV0VCS0lUR1RLX0FQSV9WRVJT
SU9OIDQuMCkKIAotQ0FMQ1VMQVRFX0xJQlJBUllfVkVSU0lPTlNfRlJPTV9MSUJUT09MX1RSSVBM
RShXRUJLSVQgODIgMCA0NSkKK2lmIChVU0VfR1RLNCkKKyAgICBzZXQoV0VCS0lUR1RLX0FQSV9W
RVJTSU9OIDUuMCkKKyAgICBzZXQoR1RLX01JTklNVU1fVkVSU0lPTiAzLjk4LjIpCisgICAgQ0FM
Q1VMQVRFX0xJQlJBUllfVkVSU0lPTlNfRlJPTV9MSUJUT09MX1RSSVBMRShXRUJLSVQgMCAwIDAp
CitlbHNlICgpCisgICAgc2V0KFdFQktJVEdUS19BUElfVkVSU0lPTiA0LjApCisgICAgc2V0KEdU
S19NSU5JTVVNX1ZFUlNJT04gMy4yMi4wKQorICAgIENBTENVTEFURV9MSUJSQVJZX1ZFUlNJT05T
X0ZST01fTElCVE9PTF9UUklQTEUoV0VCS0lUIDgyIDAgNDUpCitlbmRpZiAoKQorCiBDQUxDVUxB
VEVfTElCUkFSWV9WRVJTSU9OU19GUk9NX0xJQlRPT0xfVFJJUExFKEpBVkFTQ1JJUFRDT1JFIDM1
IDAgMTcpCiAKICMgVGhlc2UgYXJlIHNoYXJlZCB2YXJpYWJsZXMsIGJ1dCB3ZSBzcGVjaWFsIGNh
c2UgdGhlaXIgZGVmaW5pdGlvbiBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlCkBAIC0yNyw3ICszOCw3
IEBAIGZpbmRfcGFja2FnZShGb250Y29uZmlnIDIuOC4wIFJFUVVJUkVEKQogZmluZF9wYWNrYWdl
KEZyZWV0eXBlIDIuNC4yIFJFUVVJUkVEKQogZmluZF9wYWNrYWdlKExpYkdjcnlwdCAxLjYuMCBS
RVFVSVJFRCkKIGZpbmRfcGFja2FnZShHTElCIDIuNDQuMCBSRVFVSVJFRCBDT01QT05FTlRTIGdp
byBnaW8tdW5peCBnb2JqZWN0IGd0aHJlYWQgZ21vZHVsZSkKLWZpbmRfcGFja2FnZShHVEsgMy4y
Mi4wIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEdUSyAke0dUS19NSU5JTVVNX1ZFUlNJT059IFJF
UVVJUkVEKQogZmluZF9wYWNrYWdlKEhhcmZCdXp6IDAuOS4xOCBSRVFVSVJFRCBDT01QT05FTlRT
IElDVSkKIGZpbmRfcGFja2FnZShJQ1UgNjAuMiBSRVFVSVJFRCBDT01QT05FTlRTIGRhdGEgaTE4
biB1YykKIGZpbmRfcGFja2FnZShKUEVHIFJFUVVJUkVEKQpAQCAtNDUsOCArNTYsNiBAQCBmaW5k
X3BhY2thZ2UoR1RLVW5peFByaW50KQogZmluZF9wYWNrYWdlKE9wZW5HTCkKIGZpbmRfcGFja2Fn
ZShPcGVuR0xFUzIpCiAKLVdFQktJVF9PUFRJT05fQkVHSU4oKQotCiBpbmNsdWRlKEdTdHJlYW1l
ckRlZmluaXRpb25zKQogCiBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQVRLIFRSVUUpCmRp
ZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZGI3NDI4MGM1OTIzN2MwYzVi
ZTE5ZDcxNjkwZTY4OGMyNjBhMmQxYy4uMGQ3Nzk3YzMxNTE1MmI2NThkZjYwZWQzYWQ4OTIzNzUz
NzI3MDFlMiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDIwLTA0LTEwICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0dUS11bQ01ha2VdIEludHJvZHVjZSBhbiBVU0VfR1RLNCBidWls
ZCBvcHRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMDE1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IERvIHRoZSBiYXJlIG1pbmltdW0gY2hhbmdlcyB0byBidWlsZCBhZ2FpbnN0IEdUSzQgYW5kIHBy
b2R1Y2UgYSBXZWJLaXQgcG9ydCBsaWJyYXJ5IHdpdGggYQorICAgICAgICBkaWZmZXJlbnQgbmFt
ZSB0aGFuIEdUSzMgYnVpbGRzLiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBhdHRlbXB0IHRvIG1h
a2UgdGhlIGJ1aWx0IGFydGlmYWN0cworICAgICAgICBwYXJhbGxlbC1pbnN0YWxsYWJsZSB5ZXQs
IHRob3VnaCBhdCBsZWFzdCB0aGUgbWFpbiBsaWJyYXJ5LCBoZWFkZXJzLCBhbmQgdGhlIHBrZy1j
b25maWcgLnBjCisgICAgICAgIGZpbGUgc2hvdWxkIGJlIHNhZmUgdG8gaW5zdGFsbC4gVGhlIGZp
bmFsIG5hbWVzIGZvciBidWlsdCBhcnRpZmFjdHMgZm9yIEdUSzQgYnVpbGRzIG1heQorICAgICAg
ICBzdGlsbCBjaGFuZ2UuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFr
ZTogQWRkIGEgbmV3IFVTRV9HVEs0IHB1YmxpYyBidWlsZCBvcHRpb24sIHdoaWNoIGRlZmF1bHRz
CisgICAgICAgIHRvIEZBTFNFIGZvciBub3csIGFuZCBkZXBlbmRpbmcgb24gaXRzIHZhbHVlIGNo
b29zZSB0aGUgcmVxdWlyZWQgdmVyc2lvbiBvZiBHVEsgYW5kIHNldAorICAgICAgICBhIGRpZmZl
cmVudCBBUEkgdmVyc2lvbiB2ZXJzaW9ucy4gVGhpcyBpcyBlbm91Z2ggdG8gYnVpbGQgYSBsaWJy
YXJ5IHdpdGggYSBkaWZmZXJlbnQKKyAgICAgICAgbmFtZSAobGlid2Via2l0Mmd0ay01LjAgdnMu
IGxpYndlYmtpdDJndGstNC4wKSB3aGVuIEdUSzQgaXMgaW4gdXNlLgorCiAyMDIwLTA0LTEwICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbRmxhdHBh
ayBTREtdIEltcHJvdmVkIHNjY2FjaGUgc3VwcG9ydAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>