<?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>195359</bug_id>
          
          <creation_ts>2019-03-06 06:39:17 -0800</creation_ts>
          <short_desc>[GTK] Make Tools/gtkdoc/ python3 compatible</short_desc>
          <delta_ts>2019-03-07 23:11:58 -0800</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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tomas Popela">tpopela</reporter>
          <assigned_to name="Tomas Popela">tpopela</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1513023</commentid>
    <comment_count>0</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2019-03-06 06:39:17 -0800</bug_when>
    <thetext>In bug 106195 the Tools/gtk/generate-gtkdoc was made Python 3 compatible. But using Python 3.7.2 I can&apos;t make the 2.23.91 tarball to build with -DPYTHON_EXECUTABLE=%{_bindir}/python3 passed to cmake.

It fails with:

FAILED: docs-build.stamp
cd /home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/x86_64-redhat-linux-gnu &amp;&amp; /usr/bin/cmake -E env CC=/usr/lib64/ccache/cc &quot;CFLAGS=-fdiagnostics-color=always -Wextra -Wall -Wno-expansion-to-defined -Wno-maybe-uninitialized -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DUSER_AGENT_GTK_DISTRIBUTOR_NAME=&apos;\&quot;Fedora\&quot;&apos; -fno-strict-aliasing -fno-exceptions -Wno-unused-parameter&quot; /home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/generate-gtkdoc --gtk &amp;&amp; touch docs-build.stamp
Traceback (most recent call last):
  File &quot;/home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/generate-gtkdoc&quot;, line 19, in &lt;module&gt;
    from ConfigParser import SafeConfigParser
ModuleNotFoundError: No module named &apos;ConfigParser&apos;

because the ConfigParser module was reworked in Python 3.2 (see https://github.com/jaraco/configparser/#configparser). We need to make the import Python 2 and 3 compatible.

Also there is another error when the import is fixed:

Traceback (most recent call last):
  File &quot;/home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/generate-gtkdoc&quot;, line 252, in &lt;module&gt;
    build_gtkdoc_for_wkgtk(arguments)
  File &quot;/home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/generate-gtkdoc&quot;, line 201, in build_gtkdoc_for_wkgtk
    jsc_generator = get_generator_for_config(common.build_path(&apos;gtkdoc-jsc-glib.cfg&apos;), arguments.virtual_root)
  File &quot;/home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/generate-gtkdoc&quot;, line 136, in get_generator_for_config
    &apos;cross_reference_deps&apos;: get_gtkdoc_module_paths(cross_reference_deps),
  File &quot;/home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/generate-gtkdoc&quot;, line 60, in get_gtkdoc_module_paths
    for package, modules in dependent_packages.iteritems():
AttributeError: &apos;dict&apos; object has no attribute &apos;iteritems&apos;

We should user items() instead of iteritems().

Patch follows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513479</commentid>
    <comment_count>1</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2019-03-07 05:02:40 -0800</bug_when>
    <thetext>Another error hit in Tools/gtkdoc/gtkdoc.py:

Traceback (most recent call last):
  File &quot;/home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/generate-gtkdoc&quot;, line 257, in &lt;module&gt;
    build_gtkdoc_for_wkgtk(arguments)
  File &quot;/home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/generate-gtkdoc&quot;, line 219, in build_gtkdoc_for_wkgtk
    saw_warnings = generate_documentation(webkitdom_generator)
  File &quot;/home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/generate-gtkdoc&quot;, line 161, in generate_documentation
    return generate_doc(generator, arguments.skip_html)
  File &quot;/home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/generate-gtkdoc&quot;, line 148, in generate_doc
    generator.generate(not skip_html)
  File &quot;/home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/gtkdoc.py&quot;, line 154, in generate
    self._run_gtkdoc_fixxref()
  File &quot;/home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/gtkdoc.py&quot;, line 383, in _run_gtkdoc_fixxref
    self._run_command(args, cwd=self.output_dir, ignore_warnings=True)
  File &quot;/home/tpopela/dev/fedora/webkit2gtk3/webkitgtk-2.23.91/Tools/gtkdoc/gtkdoc.py&quot;, line 203, in _run_command
    sys.stdout.write(stdout.encode(&quot;utf-8&quot;))
TypeError: write() argument must be str, not bytes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513492</commentid>
    <comment_count>2</comment_count>
      <attachid>363871</attachid>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2019-03-07 06:22:16 -0800</bug_when>
    <thetext>Created attachment 363871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513495</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-07 06:25:01 -0800</bug_when>
    <thetext>Attachment 363871 did not pass style-queue:


ERROR: Tools/gtkdoc/gtkdoc.py:205:  [GTKDoc._run_command] Instance of &apos;file&apos; has no &apos;buffer&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513501</commentid>
    <comment_count>4</comment_count>
      <attachid>363871</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-03-07 07:54:41 -0800</bug_when>
    <thetext>Comment on attachment 363871
Patch

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

&gt; Tools/gtkdoc/generate-gtkdoc:120
&gt; +    if sys.version_info &lt; (3, 2):
&gt; +        config = SafeConfigParser();
&gt; +    else:
&gt; +        config = configparser.ConfigParser()

Could we do something like:

from ConfigParser import SafeConfigParser as ConfigParser

and

from configparser import ConfigParser

and then we don&apos;t need to check version here again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513931</commentid>
    <comment_count>5</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2019-03-07 23:06:52 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #4)
&gt; Comment on attachment 363871 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=363871&amp;action=review
&gt; 
&gt; &gt; Tools/gtkdoc/generate-gtkdoc:120
&gt; &gt; +    if sys.version_info &lt; (3, 2):
&gt; &gt; +        config = SafeConfigParser();
&gt; &gt; +    else:
&gt; &gt; +        config = configparser.ConfigParser()
&gt; 
&gt; Could we do something like:
&gt; 
&gt; from ConfigParser import SafeConfigParser as ConfigParser
&gt; 
&gt; and
&gt; 
&gt; from configparser import ConfigParser
&gt; 
&gt; and then we don&apos;t need to check version here again?

Good catch Carlos!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513932</commentid>
    <comment_count>6</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2019-03-07 23:11:58 -0800</bug_when>
    <thetext>Committed r242637: &lt;https://trac.webkit.org/changeset/242637&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363871</attachid>
            <date>2019-03-07 06:22:16 -0800</date>
            <delta_ts>2019-03-07 07:54:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195359-20190307152215.patch</filename>
            <type>text/plain</type>
            <size>4232</size>
            <attacher name="Tomas Popela">tpopela</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTk2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGE5NDhkMWRlY2EyZDZhOGUwZWQ0M2UyYjM5ZDY2YmVi
NTA5MjQwMC4uNGY0YzMwZTA4YzhmMDY2OTlmMGVmNmZkN2VkOGQzOTI0MzZjZDYzOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDE5LTAzLTA3ICBUb21hcyBQb3BlbGEgIDx0cG9wZWxhQHJlZGhhdC5jb20+CisKKyAg
ICAgICAgW0dUS10gTWFrZSBUb29scy9ndGtkb2MgcHl0aG9uMyBjb21wYXRpYmxlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzNTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGd0a2RvYy9nZW5lcmF0
ZS1ndGtkb2M6CisgICAgICAgIENvbmZpZ1BhcnNlciB3YXMgcmV3b3JrZWQgaW4gUHl0aG9uIDMu
MiBzbyB3ZSBoYXZlIGFkYXB0IHRoZSBjb2RlIHRvCisgICAgICAgIHdvcmsgd2l0aCBQeXRob24g
MiBhbmQgMy4KKyAgICAgICAgKGdldF9ndGtkb2NfbW9kdWxlX3BhdGhzKToKKyAgICAgICAgVGhl
IGl0ZXJpdGVtcygpIHdhcyByZW1vdmVkIGluIFB5dGhvbiAzLCBzbyBsZXQncyB1c2UgaXRlbXMo
KSB0aGF0J3MKKyAgICAgICAgYXZhaWxhYmxlIGluIFB5dGhvbiAyIGFuZCAzLgorICAgICAgICAo
Z2V0X2dlbmVyYXRvcl9mb3JfY29uZmlnKToKKyAgICAgICAgKiBndGtkb2MvZ3RrZG9jLnB5Ogor
ICAgICAgICAoR1RLRG9jLl9ydW5fY29tbWFuZCk6CisgICAgICAgIFRoZSBzeXMuc3Rkb3V0Lndy
aXRlKCkgaXMgZXhwZWN0aW5nIHN0ciBpbiBQeXRob24gMyBhbmQgbm90IGJ5dGVzCisgICAgICAg
ICh0aGF0IGFyZSBjb21pbmcgZnJvbSBzdGRvdXQuZW5jb2RlKCkpLiBVc2Ugc3lzLnN0ZG91dC5i
dWZmZXIud3JpdGUoKQorICAgICAgICBmb3IgcGFzc2luZyB0aGUgYnl0ZXMgdGhlcmUuCisKIDIw
MTktMDMtMDcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDIzNTQuCmRpZmYgLS1naXQgYS9Ub29scy9n
dGtkb2MvZ2VuZXJhdGUtZ3RrZG9jIGIvVG9vbHMvZ3RrZG9jL2dlbmVyYXRlLWd0a2RvYwppbmRl
eCBmMjgwODE4ZjBjMTZkZmFlOGQ2OTQ2OTJkNWVlNDk2ZTE1MGI1YzVmLi5jMmZiZTIwZDJlYWEw
NGNiYzkxMjIyZWY1N2I2ZDhjMmU3MmM5YTM5IDEwMDc1NQotLS0gYS9Ub29scy9ndGtkb2MvZ2Vu
ZXJhdGUtZ3RrZG9jCisrKyBiL1Rvb2xzL2d0a2RvYy9nZW5lcmF0ZS1ndGtkb2MKQEAgLTE2LDcg
KzE2LDYgQEAKICMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCiAKIGZyb20gX19mdXR1cmVfXyBpbXBv
cnQgcHJpbnRfZnVuY3Rpb24KLWZyb20gQ29uZmlnUGFyc2VyIGltcG9ydCBTYWZlQ29uZmlnUGFy
c2VyCiAKIGltcG9ydCBhcmdwYXJzZQogaW1wb3J0IGNvZGVjcwpAQCAtMjYsMTIgKzI1LDE4IEBA
IGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MucGF0aAogaW1wb3J0IHN5cwogCitpZiBzeXMudmVy
c2lvbl9pbmZvIDwgKDMsIDIpOgorICAgIGZyb20gQ29uZmlnUGFyc2VyIGltcG9ydCBTYWZlQ29u
ZmlnUGFyc2VyCitlbHNlOgorICAgIGltcG9ydCBjb25maWdwYXJzZXIKKwogdG9wX2xldmVsX2Rp
cmVjdG9yeSA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShf
X2ZpbGVfXyksICcuLicsICcuLicpKQogc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbih0
b3BfbGV2ZWxfZGlyZWN0b3J5LCAnVG9vbHMnLCAnZ2xpYicpKQogaW1wb3J0IGNvbW1vbgogCi1z
eXMuc3Rkb3V0ID0gY29kZWNzLmdldHdyaXRlcigidXRmLTgiKShzeXMuc3Rkb3V0KQotc3lzLnN0
ZGVyciA9IGNvZGVjcy5nZXR3cml0ZXIoInV0Zi04Iikoc3lzLnN0ZGVycikKK2lmIHN5cy52ZXJz
aW9uX2luZm8ubWFqb3IgPT0gMjoKKyAgICBzeXMuc3Rkb3V0ID0gY29kZWNzLmdldHdyaXRlcigi
dXRmLTgiKShzeXMuc3Rkb3V0KQorICAgIHN5cy5zdGRlcnIgPSBjb2RlY3MuZ2V0d3JpdGVyKCJ1
dGYtOCIpKHN5cy5zdGRlcnIpCiAKIGRlZiBjb25maWd1cmVfbG9nZ2luZyh2ZXJib3NlKToKICAg
ICBsZXZlbCA9IGxvZ2dpbmcuREVCVUcgaWYgdmVyYm9zZSBlbHNlIGxvZ2dpbmcuSU5GTwpAQCAt
NTcsNyArNjIsNyBAQCBkZWYgZ2V0X2d0a2RvY19tb2R1bGVfcGF0aHMoY3Jvc3NfcmVmZXJlbmNl
X2RlcHMpOgogCiAgICAgcGF0aHMgPSBbXQogICAgIGh0bWxfZGlyID0gb3MucGF0aC5qb2luKCdz
aGFyZScsICdndGstZG9jJywgJ2h0bWwnKQotICAgIGZvciBwYWNrYWdlLCBtb2R1bGVzIGluIGRl
cGVuZGVudF9wYWNrYWdlcy5pdGVyaXRlbXMoKToKKyAgICBmb3IgcGFja2FnZSwgbW9kdWxlcyBp
biBkZXBlbmRlbnRfcGFja2FnZXMuaXRlbXMoKToKICAgICAgICAgcHJlZml4ID0gY29tbW9uLnBy
ZWZpeF9vZl9wa2dfY29uZmlnX2ZpbGUocGFja2FnZSkKICAgICAgICAgaWYgcHJlZml4IGlzIE5v
bmU6CiAgICAgICAgICAgICBjb250aW51ZQpAQCAtMTA5LDcgKzExNCwxMCBAQCBkZWYgZ2V0X2dl
bmVyYXRvcl9mb3JfY29uZmlnKGNvbmZpZ19maWxlLCB2aXJ0dWFsX3Jvb3QsIGNyb3NzX3JlZmVy
ZW5jZV9kZXBzID0gWwogICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShjb25maWdfZmlsZSk6CiAg
ICAgICAgIHJldHVybiBOb25lCiAKLSAgICBjb25maWcgPSBTYWZlQ29uZmlnUGFyc2VyKCkKKyAg
ICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDIpOgorICAgICAgICBjb25maWcgPSBTYWZlQ29u
ZmlnUGFyc2VyKCk7CisgICAgZWxzZToKKyAgICAgICAgY29uZmlnID0gY29uZmlncGFyc2VyLkNv
bmZpZ1BhcnNlcigpCiAgICAgY29uZmlnLnJlYWQoY29uZmlnX2ZpbGUpCiAgICAgbW9kdWxlX25h
bWUgPSBjb25maWcuc2VjdGlvbnMoKVswXQogICAgIHBrZ2NvbmZpZ19maWxlID0gY29uZmlnLmdl
dChtb2R1bGVfbmFtZSwgJ3BrZ2NvbmZpZ19maWxlJykKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0a2Rv
Yy9ndGtkb2MucHkgYi9Ub29scy9ndGtkb2MvZ3RrZG9jLnB5CmluZGV4IDQ3OTY4NDQ2Y2M1NDhj
ZmE2YTljZmNjMTllNWRhMzQzMjNkYTg2MGEuLjgxZWU4Y2RjY2M4NmM4YjdmODMxM2M2MzQxMjY4
ZjBkMDRmNWFjMjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2d0a2RvYy9ndGtkb2MucHkKKysrIGIvVG9v
bHMvZ3RrZG9jL2d0a2RvYy5weQpAQCAtMTk5LDEyICsxOTksMTggQEAgY2xhc3MgR1RLRG9jKG9i
amVjdCk6CiAgICAgICAgIGlmIHByaW50X291dHB1dDoKICAgICAgICAgICAgIGlmIHN0ZG91dDoK
ICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3Jp
dGUoc3Rkb3V0LmVuY29kZSgidXRmLTgiKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgc3lzLnZl
cnNpb25faW5mby5tYWpvciA9PSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91
dC53cml0ZShzdGRvdXQuZW5jb2RlKCJ1dGYtOCIpKQorICAgICAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC5idWZmZXIud3JpdGUoc3Rkb3V0
LmVuY29kZSgidXRmLTgiKSkKICAgICAgICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVy
cm9yOgogICAgICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKHN0ZG91dCkKICAgICAg
ICAgICAgIGlmIHN0ZGVycjoKICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAg
ICAgIHN5cy5zdGRlcnIud3JpdGUoc3RkZXJyLmVuY29kZSgidXRmLTgiKSkKKyAgICAgICAgICAg
ICAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mby5tYWpvciA9PSAyOgorICAgICAgICAgICAgICAg
ICAgICAgICAgc3lzLnN0ZGVyci53cml0ZShzdGRlcnIuZW5jb2RlKCJ1dGYtOCIpKQorICAgICAg
ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci5i
dWZmZXIud3JpdGUoc3RkZXJyLmVuY29kZSgidXRmLTgiKSkKICAgICAgICAgICAgICAgICBleGNl
cHQgVW5pY29kZURlY29kZUVycm9yOgogICAgICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndy
aXRlKHN0ZGVycikKIAo=
</data>
<flag name="review"
          id="380431"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>