<?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>228250</bug_id>
          
          <creation_ts>2021-07-23 14:48:02 -0700</creation_ts>
          <short_desc>[GTK4] Change API version from webkit2gtk-5.0 to webkitgtk-5.0</short_desc>
          <delta_ts>2022-09-21 11:55:56 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=245494</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>244613</dependson>
    
    <dependson>244615</dependson>
          <blocked>210100</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>annulen</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1779186</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-07-23 14:48:02 -0700</bug_when>
    <thetext>I think it would be nice to try to align our API version with the GTK version, to reduce confusion in the future. It&apos;s not possible currently because our GTK 3 APIs are webkit2gtk-4.0 and webkit2gtk-4.1, but it *will* be possible in a future GTK 5 API *if* we don&apos;t bump our API version to webkit2gtk-5.0 now. Instead, I&apos;d propose calling the GTK 4 API webkit2gtk-4.5, halfway between 4.0 and 5.0. Then we can call the future GTK 5 API webkit2gtk-5.0.

We may also want to drop the legacy 2 from the API version, i.e. webkit2gtk-4.5 -&gt; webkitgtk-4.5, to simplify things more. Or we could decide to keep it forever.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779187</commentid>
    <comment_count>1</comment_count>
      <attachid>434126</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-07-23 14:51:06 -0700</bug_when>
    <thetext>Created attachment 434126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779189</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-07-23 14:57:36 -0700</bug_when>
    <thetext>Alternatively, we could try to copy distro packaging by adding the GTK version to the middle of the API version. E.g. instead of webkit2gtk-4.0, we could have webkit2gtk4-5.0 (but it feels like too much versioning?). Or we could omit the versioning entirely and just have webkit2gtk5 (but having the version seems nicer to me).

What I&apos;m trying to avoid is having to know this arbitrary mapping of WebKitGTK API versions to GTK versions:

webkit-1.0 - WebKitGTK for GTK 2
webkitgtk-3.0 - WebKitGTK for GTK 3, LegacyWebKit
webkit2gtk-3.0 - WebKitGTK for GTK 3, modern WebKit, version 2.4 and earlier
webkit2gtk-4.0 - WebKitGTK for GTK 3, with libsoup 2, version 2.6 and later
webkit2gtk-4.1 - WebKitGTK for GTK 3, with libsoup 3

It&apos;s not so hard if you&apos;re a WebKit developer and have the table in front of you, but for developers using WebKit it&apos;s actually quite confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781609</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-08-03 07:57:04 -0700</bug_when>
    <thetext>I find weird to use 4.5 for a new major API version, 4.1 was used because the API is the same, only binary compatibility was broken, so it&apos;s a new version of the 4 series. But a new version breaking the API and removing interfaces should have a new number in my opinion. I&apos;m fine with removing the 2 from the library name, though. We are no breaking the API because of GTK4, but we might need to break the api in the feature before GTK5 is released and we would be out of sync with GTK again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781750</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-03 15:07:35 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; I find weird to use 4.5 for a new major API version, 4.1 was used because
&gt; the API is the same, only binary compatibility was broken, so it&apos;s a new
&gt; version of the 4 series. But a new version breaking the API and removing
&gt; interfaces should have a new number in my opinion. I&apos;m fine with removing
&gt; the 2 from the library name, though. We are no breaking the API because of
&gt; GTK4, but we might need to break the api in the feature before GTK5 is
&gt; released and we would be out of sync with GTK again.

Well it&apos;s up to you. I don&apos;t see a problem with 4.5. If we need an unexpected API bump, we could have webkitgtk-4.6, webkitgtk-4.7, webkitgtk-4.8 etc. so there&apos;s plenty of room to avoid desyncing with GTK.

But if you prefer 5.0, fine. I can still look into how hard it would be to drop the 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781840</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-08-04 00:05:17 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #4)
&gt; (In reply to Carlos Garcia Campos from comment #3)
&gt; &gt; I find weird to use 4.5 for a new major API version, 4.1 was used because
&gt; &gt; the API is the same, only binary compatibility was broken, so it&apos;s a new
&gt; &gt; version of the 4 series. But a new version breaking the API and removing
&gt; &gt; interfaces should have a new number in my opinion. I&apos;m fine with removing
&gt; &gt; the 2 from the library name, though. We are no breaking the API because of
&gt; &gt; GTK4, but we might need to break the api in the feature before GTK5 is
&gt; &gt; released and we would be out of sync with GTK again.
&gt; 
&gt; Well it&apos;s up to you. I don&apos;t see a problem with 4.5. If we need an
&gt; unexpected API bump, we could have webkitgtk-4.6, webkitgtk-4.7,
&gt; webkitgtk-4.8 etc. so there&apos;s plenty of room to avoid desyncing with GTK.
&gt; 
&gt; But if you prefer 5.0, fine. I can still look into how hard it would be to
&gt; drop the 2.

I&apos;m not sure, TBH. We still have time to decide. We can start by removing the 2 for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781886</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-04 08:30:24 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #5)
&gt; We can start by removing the 2 for now.

Turns out this is hard. :D

pkg-config is easy enough, but there is also:

 * .so library name
 * public include path
 * gtk-doc package
 * bazillions of internal paths, e.g. derived sources and framework headers

We might need to go one at a time....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811925</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-11-04 11:57:10 -0700</bug_when>
    <thetext>tbh removing the 2 might not be worth the effort.

Changing just the API version is a lot easier, since that only needs to be changed in just a couple places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1886520</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-07-25 10:19:33 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #0)
&gt; I think it would be nice to try to align our API version with the GTK
&gt; version, to reduce confusion in the future.

Nobody cares. Probably not worth it.

&gt; We may also want to drop the legacy 2 from the API version, i.e.
&gt; webkit2gtk-4.5 -&gt; webkitgtk-4.5, to simplify things more. Or we could decide
&gt; to keep it forever.

I&apos;m going to investigate the feasibility of doing this. If it&apos;s not easy, then I&apos;ll close this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1886561</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-07-25 13:12:20 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #8)
&gt; I&apos;m going to investigate the feasibility of doing this. If it&apos;s not easy,
&gt; then I&apos;ll close this bug.

I thought this was going to work, but problem is #includes in public headers, e.g.:

#if !defined(__WEBKIT2_H_INSIDE__) &amp;&amp; !defined(WEBKIT2_COMPILATION)
#error &quot;Only &lt;webkit2/webkit2.h&gt; can be included directly.&quot;
#endif

It may be possible if we adopt Adrian&apos;s suggestion to use https://dotat.at/prog/unifdef/. I&apos;ll investigate that now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1895008</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-08-30 17:59:42 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/3834</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1897022</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-09-08 07:50:01 -0700</bug_when>
    <thetext>Committed 254269@main (5b5c7d2947db): &lt;https://commits.webkit.org/254269@main&gt;

Reviewed commits have been landed. Closing PR #3834 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434126</attachid>
            <date>2021-07-23 14:51:06 -0700</date>
            <delta_ts>2021-08-09 08:50:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228250-20210723165105.patch</filename>
            <type>text/plain</type>
            <size>3709</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDNiMGFi
NDBkYTUwMDJhMGE3NGVjNDMzMWFhNjVmYjNiNGEzNWY2NjMuLjA5OTZhNTFjNzg4MmNhODliYmVi
NmIxMzU3NmQzODQ1YTc1ZjhkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RL
LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC0yMjQsOCArMjI0
LDggQEAgZW5kaWYgKCkKIGVuZGlmICgpCiAKIGlmIChVU0VfR1RLNCkKLSAgICBzZXQoV0VCS0lU
R1RLX0FQSV9WRVJTSU9OIDUuMCkKLSAgICBzZXQoV0VCS0lUR1RLX0FQSV9ET0NfVkVSU0lPTiA1
LjApCisgICAgc2V0KFdFQktJVEdUS19BUElfVkVSU0lPTiA0LjUpCisgICAgc2V0KFdFQktJVEdU
S19BUElfRE9DX1ZFUlNJT04gNC41KQogZWxzZWlmIChVU0VfU09VUDIpCiAgICAgc2V0KFdFQktJ
VEdUS19BUElfVkVSU0lPTiA0LjApCiAgICAgc2V0KFdFQktJVEdUS19BUElfRE9DX1ZFUlNJT04g
NC4wKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDI0NzI3OTk1M2ZiMjRhNzNkNjhlNTViZWNjZDM4OWM5YTAyYWYwMzAuLmVjMTM2YzViYjA5YzJm
OTIwNjg4NTExNWRjM2Y3N2VjMGU2ZTgxYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNy0yMyAgTWljaGFl
bCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KKworICAgICAgICBbR1RLXSBVc2Ug
d2Via2l0Mmd0ay00LjUgZm9yIEdUSyA0IEFQSSB2ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgyNTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsu
cHk6CisgICAgICAgIChHdGtQb3J0Ll9pc19ndGs0X2J1aWxkKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3BvcnQvZ3RrX3VuaXR0ZXN0LnB5OgorICAgICAgICAoR3RrUG9ydFRlc3QudGVz
dF9ndGs0X2V4cGVjdGF0aW9uc19iaW5hcnlfb25seSk6CisgICAgICAgIChHdGtQb3J0VGVzdC50
ZXN0X2d0a19leHBlY3RhdGlvbnNfYm90aF9iaW5hcmllcyk6CisKIDIwMjEtMDctMjMgIFRydWl0
dCBTYXZlbGwgIDx0c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBNaWdyYXRlIGlPUyAxNSBl
eHBlY3RhdGlvbnMgdG8gT3BlblNvdXJjZSBhbmQgYnVtcCB2ZXJzaW9uIG51bWJlcnMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvZ3RrLnB5CmluZGV4IDg0OTJjMDc2OTY2OWIzNzRlNWNkYmIzMzg1MTNi
YjQzODAzNjc1MzUuLmFkNGQ5NjRhZTNkNWY3ODA0ODdhMmVmMTFmZTM5NDE0NGJkMGY4NzAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5weQpAQCAtMjkwLDcgKzI5MCw3IEBAIGNsYXNzIEd0
a1BvcnQoUG9ydCk6CiAgICAgICAgICAgICBpZiBsZW4oY2FuZGlkYXRlcykgPiAxOgogICAgICAg
ICAgICAgICAgIF9sb2cud2FybmluZygiTXVsdGlwbGUgV2ViS2l0MkdUSyBsaWJyYXJpZXMgZm91
bmQuIFNraXBwaW5nIEdUSzQgZGV0ZWN0aW9uLiIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCi0gICAgICAgICAgICByZXR1cm4gb3MucGF0aC5iYXNlbmFtZShjYW5kaWRhdGVzWzBdKSA9
PSAnbGlid2Via2l0Mmd0ay01LjAuc28nCisgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5iYXNl
bmFtZShjYW5kaWRhdGVzWzBdKSA9PSAnbGlid2Via2l0Mmd0ay00LjUuc28nCiAKICAgICAgICAg
ZXhjZXB0ICh3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZS5TY3JpcHRFcnJvciwgSU9F
cnJvciwgT1NFcnJvcik6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGtfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvZ3RrX3VuaXR0ZXN0LnB5CmluZGV4IDBkYmMyOWZhY2Y5MmVmY2U4YWUx
NmU4OWQxYTQxNTQ5OWZlOTAxZTUuLjY2MGNkZGUyYTRmM2QwZWZhMjBjNWU1ZTVkOTA5MzZhMGI4
NTQwNTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGtfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0a191bml0dGVzdC5weQpA
QCAtOTgsNyArOTgsNyBAQCBjbGFzcyBHdGtQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0
Q2FzZSk6CiAgICAgZGVmIHRlc3RfZ3RrNF9leHBlY3RhdGlvbnNfYmluYXJ5X29ubHkoc2VsZik6
CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCiAgICAgICAgIHBvcnQuX2ZpbGVzeXN0
ZW0gPSBNb2NrRmlsZVN5c3RlbSh7Ci0gICAgICAgICAgICAiL21vY2stYnVpbGQvbGliL2xpYndl
YmtpdDJndGstNS4wLnNvIjogIiIKKyAgICAgICAgICAgICIvbW9jay1idWlsZC9saWIvbGlid2Vi
a2l0Mmd0ay00LjUuc28iOiAiIgogICAgICAgICB9KQogICAgICAgICB3aXRoIE91dHB1dENhcHR1
cmUoKSBhcyBfOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5leHBlY3RhdGlv
bnNfZmlsZXMoKSwKQEAgLTEyNSw3ICsxMjUsNyBAQCBjbGFzcyBHdGtQb3J0VGVzdChwb3J0X3Rl
c3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCiAg
ICAgICAgIHBvcnQuX2ZpbGVzeXN0ZW0gPSBNb2NrRmlsZVN5c3RlbSh7CiAgICAgICAgICAgICAi
L21vY2stYnVpbGQvbGliL2xpYndlYmtpdDJndGstNC4wLnNvIjogIiIsCi0gICAgICAgICAgICAi
L21vY2stYnVpbGQvbGliL2xpYndlYmtpdDJndGstNS4wLnNvIjogIiIKKyAgICAgICAgICAgICIv
bW9jay1idWlsZC9saWIvbGlid2Via2l0Mmd0ay00LjUuc28iOiAiIgogICAgICAgICB9KQogCiAg
ICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkOgpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGM2ZDkwZTlkNzY4YWJmNWFjNWZkMThiNWNiYzQ2ZmU3
OGEwZjU0NGMuLmM2ZWVjMGRiYTU5MjE2M2UyZTA4YTBlOTA4ZWQyOTUxYTMwNjAzNmUgMTAwNjQ0
Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0w
Ny0yMyAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KKworICAgICAg
ICBbR1RLXSBVc2Ugd2Via2l0Mmd0ay00LjUgZm9yIEdUSyA0IEFQSSB2ZXJzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgyNTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9P
cHRpb25zR1RLLmNtYWtlOgorCiAyMDIxLTA3LTIzICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xpYl0gUmVtb3ZlIGxpYnBvcnRhbCBkZXBlbmRl
bmN5Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>