<?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>211781</bug_id>
          
          <creation_ts>2020-05-12 08:46:54 -0700</creation_ts>
          <short_desc>[Flatpak SDK] Craft a custom sccache config file from SDK toolchains</short_desc>
          <delta_ts>2020-05-13 01:59:16 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>clopez</cc>
    
    <cc>emilio</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>psaavedra</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1651741</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-05-12 08:46:54 -0700</bug_when>
    <thetext>`webkit-flatpak -r -t &lt;token&gt;` would generate a config file in WebKitBuild/UserFlatpak/. This would be optional though. A global user config file (from ~/.config/sccache/) can still be used if the generated config doesn&apos;t exist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651744</commentid>
    <comment_count>1</comment_count>
      <attachid>399128</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-05-12 08:50:49 -0700</bug_when>
    <thetext>Created attachment 399128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651757</commentid>
    <comment_count>2</comment_count>
      <attachid>399128</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-05-12 09:13:54 -0700</bug_when>
    <thetext>Comment on attachment 399128
Patch

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

&gt; Tools/flatpak/flatpakutils.py:873
&gt; +            sccache_config = {&apos;dist&apos;: {&apos;scheduler_url&apos;: &apos;https://sccache.igalia.com&apos;,

What about?:

  `sccache_config = {&apos;dist&apos;: {&apos;scheduler_url&apos;: sccache_scheduler,`

with:

  `general.add_argument(&quot;-s&quot;, &quot;--sccache-scheduler&quot;, dest=&quot;sccache_scheduler&quot;, default=&apos;https://sccache.igalia.com&apos;)`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651778</commentid>
    <comment_count>3</comment_count>
      <attachid>399128</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-05-12 09:48:08 -0700</bug_when>
    <thetext>Comment on attachment 399128
Patch

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

&gt; Tools/flatpak/flatpakutils.py:878
&gt; +        with open(self.sccache_config_file, &apos;w&apos;) as config:
&gt; +            sccache_config = {&apos;dist&apos;: {&apos;scheduler_url&apos;: &apos;https://sccache.igalia.com&apos;,
&gt; +                                       &apos;toolchain_cache_size&apos;: 5368709120,
&gt; +                                       &apos;auth&apos;: {&apos;type&apos;: &apos;token&apos;,
&gt; +                                                &apos;token&apos;: self.sccache_token},
&gt; +                                       &apos;toolchains&apos;: toolchains}}
&gt; +            toml.dump(sccache_config, config)

To me it feels overkill to add a new dependency (toml) to just be able to write the sccache config in json/dict format instead of writing it directly in its own native toml format.
Its there any reason to not write the config file directly in its own native format (avoiding this dependency)?
You can use a templated variable to make that more pretty. Example:

sccache_config_template = &quot;&quot;&quot;\
[dist]
scheduler_url = &quot;%(scheduler_url)s&quot;
toolchain_cache_size = 5368709120
toolchains = &quot;%(toolchains)s&quot;

[dist.auth]
token = &quot;%(sccache_token)s&quot;
type = &quot;token&quot;
&quot;&quot;&quot;


print (sccache_config_template % {
           &quot;scheduler_url&quot; : &quot;https://sccache.igalia.com&quot;,
           &quot;toolchains&quot; : toolchains,
           &quot;sccache_token&quot; : self.sccache_token} )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651782</commentid>
    <comment_count>4</comment_count>
      <attachid>399128</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-05-12 09:58:13 -0700</bug_when>
    <thetext>Comment on attachment 399128
Patch

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

&gt;&gt; Tools/flatpak/flatpakutils.py:878
&gt;&gt; +            toml.dump(sccache_config, config)
&gt; 
&gt; To me it feels overkill to add a new dependency (toml) to just be able to write the sccache config in json/dict format instead of writing it directly in its own native toml format.
&gt; Its there any reason to not write the config file directly in its own native format (avoiding this dependency)?
&gt; You can use a templated variable to make that more pretty. Example:
&gt; 
&gt; sccache_config_template = &quot;&quot;&quot;\
&gt; [dist]
&gt; scheduler_url = &quot;%(scheduler_url)s&quot;
&gt; toolchain_cache_size = 5368709120
&gt; toolchains = &quot;%(toolchains)s&quot;
&gt; 
&gt; [dist.auth]
&gt; token = &quot;%(sccache_token)s&quot;
&gt; type = &quot;token&quot;
&gt; &quot;&quot;&quot;
&gt; 
&gt; 
&gt; print (sccache_config_template % {
&gt;            &quot;scheduler_url&quot; : &quot;https://sccache.igalia.com&quot;,
&gt;            &quot;toolchains&quot; : toolchains,
&gt;            &quot;sccache_token&quot; : self.sccache_token} )

You&apos;d need a template for the toolchains too. My solution looks simpler imho :) And toml is a small python package anyway, automatically installed. I don&apos;t buy the overkill argument :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651788</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-05-12 10:13:40 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #4)
&gt; Comment on attachment 399128 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399128&amp;action=review
&gt; 
&gt; &gt;&gt; Tools/flatpak/flatpakutils.py:878
&gt; &gt;&gt; +            toml.dump(sccache_config, config)
&gt; &gt; 
&gt; &gt; To me it feels overkill to add a new dependency (toml) to just be able to write the sccache config in json/dict format instead of writing it directly in its own native toml format.
&gt; &gt; Its there any reason to not write the config file directly in its own native 
&gt; 
&gt; You&apos;d need a template for the toolchains too. 

Right.. i missed that

&gt; My solution looks simpler imho
&gt; :) And toml is a small python package anyway, automatically installed. I
&gt; don&apos;t buy the overkill argument :)

ok, fair enough</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651789</commentid>
    <comment_count>6</comment_count>
      <attachid>399128</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-05-12 10:15:20 -0700</bug_when>
    <thetext>Comment on attachment 399128
Patch

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

&gt;&gt; Tools/flatpak/flatpakutils.py:873
&gt;&gt; +            sccache_config = {&apos;dist&apos;: {&apos;scheduler_url&apos;: &apos;https://sccache.igalia.com&apos;,
&gt; 
&gt; What about?:
&gt; 
&gt;   `sccache_config = {&apos;dist&apos;: {&apos;scheduler_url&apos;: sccache_scheduler,`
&gt; 
&gt; with:
&gt; 
&gt;   `general.add_argument(&quot;-s&quot;, &quot;--sccache-scheduler&quot;, dest=&quot;sccache_scheduler&quot;, default=&apos;https://sccache.igalia.com&apos;)`

I like this suggestion of making the url configurable

&gt; Tools/flatpak/flatpakutils.py:874
&gt; +                                       &apos;toolchain_cache_size&apos;: 5368709120,

The default seems to be 10GB. Why lowering it to 5GB?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651790</commentid>
    <comment_count>7</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-05-12 10:18:16 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #4)
&gt; Comment on attachment 399128 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399128&amp;action=review
&gt; 
&gt; &gt;&gt; Tools/flatpak/flatpakutils.py:878
&gt; &gt;&gt; +            toml.dump(sccache_config, config)
&gt; &gt; 
&gt; &gt; To me it feels overkill to add a new dependency (toml) to just be able to write the sccache config in json/dict format instead of writing it directly in its own native toml format.
&gt; &gt; Its there any reason to not write the config file directly in its own native format (avoiding this dependency)?
&gt; &gt; You can use a templated variable to make that more pretty. Example:
&gt; &gt; 
&gt; &gt; sccache_config_template = &quot;&quot;&quot;\
&gt; &gt; [dist]
&gt; &gt; scheduler_url = &quot;%(scheduler_url)s&quot;
&gt; &gt; toolchain_cache_size = 5368709120
&gt; &gt; toolchains = &quot;%(toolchains)s&quot;
&gt; &gt; 
&gt; &gt; [dist.auth]
&gt; &gt; token = &quot;%(sccache_token)s&quot;
&gt; &gt; type = &quot;token&quot;
&gt; &gt; &quot;&quot;&quot;
&gt; &gt; 
&gt; &gt; 
&gt; &gt; print (sccache_config_template % {
&gt; &gt;            &quot;scheduler_url&quot; : &quot;https://sccache.igalia.com&quot;,
&gt; &gt;            &quot;toolchains&quot; : toolchains,
&gt; &gt;            &quot;sccache_token&quot; : self.sccache_token} )
&gt; 
&gt; You&apos;d need a template for the toolchains too. My solution looks simpler imho
&gt; :) And toml is a small python package anyway, automatically installed. I
&gt; don&apos;t buy the overkill argument :)

Just a simple comment is not configparser enough to built this particular file template?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651792</commentid>
    <comment_count>8</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-05-12 10:19:17 -0700</bug_when>
    <thetext>*build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651796</commentid>
    <comment_count>9</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2020-05-12 10:26:15 -0700</bug_when>
    <thetext>(In reply to Pablo Saavedra from comment #7)
&gt; (In reply to Philippe Normand from comment #4)
&gt; &gt; Comment on attachment 399128 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=399128&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Tools/flatpak/flatpakutils.py:878
&gt; &gt; &gt;&gt; +            toml.dump(sccache_config, config)
&gt; &gt; &gt; 
&gt; &gt; &gt; To me it feels overkill to add a new dependency (toml) to just be able to write the sccache config in json/dict format instead of writing it directly in its own native toml format.
&gt; &gt; &gt; Its there any reason to not write the config file directly in its own native format (avoiding this dependency)?
&gt; &gt; &gt; You can use a templated variable to make that more pretty. Example:
&gt; &gt; &gt; 
&gt; &gt; &gt; sccache_config_template = &quot;&quot;&quot;\
&gt; &gt; &gt; [dist]
&gt; &gt; &gt; scheduler_url = &quot;%(scheduler_url)s&quot;
&gt; &gt; &gt; toolchain_cache_size = 5368709120
&gt; &gt; &gt; toolchains = &quot;%(toolchains)s&quot;
&gt; &gt; &gt; 
&gt; &gt; &gt; [dist.auth]
&gt; &gt; &gt; token = &quot;%(sccache_token)s&quot;
&gt; &gt; &gt; type = &quot;token&quot;
&gt; &gt; &gt; &quot;&quot;&quot;
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; print (sccache_config_template % {
&gt; &gt; &gt;            &quot;scheduler_url&quot; : &quot;https://sccache.igalia.com&quot;,
&gt; &gt; &gt;            &quot;toolchains&quot; : toolchains,
&gt; &gt; &gt;            &quot;sccache_token&quot; : self.sccache_token} )
&gt; &gt; 
&gt; &gt; You&apos;d need a template for the toolchains too. My solution looks simpler imho
&gt; &gt; :) And toml is a small python package anyway, automatically installed. I
&gt; &gt; don&apos;t buy the overkill argument :)
&gt; 
&gt; Just a simple comment is not configparser enough to built this particular
&gt; file template?


Nevermind. I see the resulting file differs too much than a regular INI file:

[dist]
scheduler_url = &quot;https://sccache.igalia.com&quot;
toolchain_cache_size = 5368709120
[[dist.toolchains]]
compiler_executable = &quot;/usr/bin/c++&quot;
archive_compiler_executable = &quot;/usr/bin/g++&quot;
type = &quot;path_override&quot;
archive = &quot;/home/psaavedra/local/git/webkit-gtk/WebKit/WebKitBuild/Toolchains/webkit-sdk-gcc-c636916ef47c8b977cbfab46ae5f3289.tar.gz&quot;

[[dist.toolchains]]
compiler_executable = &quot;/usr/bin/clang++&quot;
archive_compiler_executable = &quot;/usr/bin/clang++&quot;
type = &quot;path_override&quot;
archive = &quot;/home/psaavedra/local/git/webkit-gtk/WebKit/WebKitBuild/Toolchains/webkit-sdk-clang-a0c3c4672a324be2250371fbe01c10fb.tar.gz&quot;

[dist.auth]
token = &quot;XXXXXXXXXXXXXXXXXXX&quot;
type = &quot;token&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652154</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-05-13 01:43:37 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #6)

&gt; 
&gt; I like this suggestion of making the url configurable
&gt; 

Ok, let&apos;s do it then.

&gt; &gt; Tools/flatpak/flatpakutils.py:874
&gt; &gt; +                                       &apos;toolchain_cache_size&apos;: 5368709120,
&gt; 
&gt; The default seems to be 10GB. Why lowering it to 5GB?

No reason, I&apos;ll remove this :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652156</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-05-13 01:58:15 -0700</bug_when>
    <thetext>Committed r261607: &lt;https://trac.webkit.org/changeset/261607&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652157</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-13 01:59:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/63175727&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399128</attachid>
            <date>2020-05-12 08:50:49 -0700</date>
            <delta_ts>2020-05-12 10:15:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211781-20200512165047.patch</filename>
            <type>text/plain</type>
            <size>8931</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTUzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjlmYTNiZWI0NTExNDRhYjAxOTAzYzg2ZDQ3MDhkZjU1
ZGIyNWU5My4uODA2YmM4NjcyYWI3NmU3NGQ1YmZmMDFlYjYwY2U1ZWNlNDRjNzNkNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDIwLTA1LTEyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
KworICAgICAgICBbRmxhdHBhayBTREtdIENyYWZ0IGEgY3VzdG9tIHNjY2FjaGUgY29uZmlnIGZp
bGUgZnJvbSBTREsgdG9vbGNoYWlucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjExNzgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3B0aW9uYWxseSBnZW5lcmF0ZSBhIHNjY2FjaGUgY29uZmlnIGZpbGUg
YW5kIHVzZSBpdCB3aGVuIGJ1aWxkaW5nIFdlYktpdC4gRm9yIG5vdyB0aGUKKyAgICAgICAgc2Nj
YWNoZS5pZ2FsaWEuY29tIHNjaGVkdWxlciBpcyBoYXJkY29kZWQsIHRoaXMgaXMgbm90IGlkZWFs
LiBTdWdnZXN0aW9ucyB3ZWxjb21lIDopCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Ro
aXJkcGFydHkvX19pbml0X18ucHk6CisgICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suZmlu
ZF9tb2R1bGUpOgorICAgICAgICAoQXV0b2luc3RhbGxJbXBvcnRIb29rLl9pbnN0YWxsX3RvbWwp
OgorICAgICAgICAqIGZsYXRwYWsvZmxhdHBha3V0aWxzLnB5OgorICAgICAgICAoV2Via2l0Rmxh
dHBhay5sb2FkX2Zyb21fYXJncyk6CisgICAgICAgIChXZWJraXRGbGF0cGFrLl9faW5pdF9fKToK
KyAgICAgICAgKFdlYmtpdEZsYXRwYWsuY2xlYW5fYXJncyk6CisgICAgICAgIChXZWJraXRGbGF0
cGFrLmhvc3RfcGF0aF90b19zYW5kYm94X3BhdGgpOgorICAgICAgICAoV2Via2l0RmxhdHBhay5y
dW5faW5fc2FuZGJveCk6CisgICAgICAgIChXZWJraXRGbGF0cGFrLm1haW4pOgorICAgICAgICAo
V2Via2l0RmxhdHBhay5zYXZlX2NvbmZpZyk6CisgICAgICAgIChXZWJraXRGbGF0cGFrKToKKyAg
ICAgICAgKFdlYmtpdEZsYXRwYWsucGFja190b29sY2hhaW4pOgorICAgICAgICAoV2Via2l0Rmxh
dHBhay5zZXR1cF9pY2VjYyk6IERlbGV0ZWQuCisKIDIwMjAtMDUtMTIgIENhcmxvcyBBbGJlcnRv
IExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgV1BUIHRlc3QgaW1w
b3J0ZXIgZmFpbHMgdG8gdXBkYXRlIHJlZmVyZW5jZXMgaW4gPGxpbms+IHRhZ3MKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfXy5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfXy5weQppbmRleCAxOTA2NDU1OWQy
Y2VmMTI4ZDliNDI1NjQwNDdjMGQ4MmYyYWRhNzAxLi5kZTY4NzQ3OTFkNzQxMDE5OWJlMDgyNTYw
OTg1YTNiNTNlYTIxOTE1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJk
cGFydHkvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5
L19faW5pdF9fLnB5CkBAIC0xMjgsNiArMTI4LDggQEAgY2xhc3MgQXV0b2luc3RhbGxJbXBvcnRI
b29rKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9pbnN0YWxsX2JlYXV0aWZ1bHNvdXAoKQog
ICAgICAgICBlbGlmICcuaHRtbDVsaWInIGluIGZ1bGxuYW1lOgogICAgICAgICAgICAgc2VsZi5f
aW5zdGFsbF9odG1sNWxpYigpCisgICAgICAgIGVsaWYgJy50b21sJyBpbiBmdWxsbmFtZToKKyAg
ICAgICAgICAgIHNlbGYuX2luc3RhbGxfdG9tbCgpCiAKICAgICBkZWYgX2luc3RhbGxfc2l4KHNl
bGYpOgogICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5v
cmcvcGFja2FnZXMvMTYvZDgvYmM2MzE2Y2Y5ODQxOTcxOWJkNTljOTE3NDIxOTRjMTExYjZmMmU4
NWFiYWM4OGU0OTZhZGVmYWY3YWZlL3NpeC0xLjExLjAudGFyLmd6IiwKQEAgLTMyMyw2ICszMjUs
MTEgQEAgY2xhc3MgQXV0b2luc3RhbGxJbXBvcnRIb29rKG9iamVjdCk6CiAgICAgICAgICAgICBm
dWxsX2ZpcmVmb3hfdXJsID0gcmUuZmluZGFsbChyJy4qJXMuKicgJSBmaWxlbmFtZV9wb3N0Zml4
LCBhbGxfZmlyZWZveF9yZWxlYXNlX3VybHMpWzBdLnNwbGl0KCciJylbM10KICAgICAgICAgICAg
IHNlbGYuaW5zdGFsbF9iaW5hcnkoZnVsbF9maXJlZm94X3VybCwgJ2dlY2tvZHJpdmVyJykKIAor
ICAgIGRlZiBfaW5zdGFsbF90b21sKHNlbGYpOgorICAgICAgICB0b21sX2RpciA9IHNlbGYuX2Zz
LmpvaW4oX0FVVE9JTlNUQUxMRURfRElSLCAidG9tbCIpCisgICAgICAgIGluc3RhbGxlciA9IEF1
dG9JbnN0YWxsZXIocHJlcGVuZF90b19zZWFyY2hfcGF0aD1UcnVlLCB0YXJnZXRfZGlyPXRvbWxf
ZGlyKQorICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9u
aG9zdGVkLm9yZy9wYWNrYWdlcy9iOS8xOS81Y2JkNzhlYWM4YjE3ODM2NzFjNDBlMzRiYjBmYTgz
MTMzYTA2ZDM0MGEzOGI1NWM2NDUwNzZkNDAwOTQvdG9tbC0wLjEwLjAudGFyLmd6IiwgdXJsX3N1
YnBhdGg9InRvbWwtMC4xMC4wL3RvbWwiKQorCiAgICAgZGVmIF9pbnN0YWxsKHNlbGYsIHVybCwg
dXJsX3N1YnBhdGg9Tm9uZSwgdGFyZ2V0X25hbWU9Tm9uZSk6CiAgICAgICAgIGluc3RhbGxlciA9
IEF1dG9JbnN0YWxsZXIodGFyZ2V0X2Rpcj1fQVVUT0lOU1RBTExFRF9ESVIpCiAgICAgICAgIHJl
dHVybiBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9dXJsLCB1cmxfc3VicGF0aD11cmxfc3VicGF0aCwg
dGFyZ2V0X25hbWU9dGFyZ2V0X25hbWUpCmRpZmYgLS1naXQgYS9Ub29scy9mbGF0cGFrL2ZsYXRw
YWt1dGlscy5weSBiL1Rvb2xzL2ZsYXRwYWsvZmxhdHBha3V0aWxzLnB5CmluZGV4IGE2YTY0NjQw
MjhkNGU4ZmM5NGY5ZDY4NWU4MzQ5ODFmYTQyNjllMGMuLjFjYTdlNmQxYmQ1M2ZiM2MyODcxOWI4
MThjZTg3NjgwNjYxYjRlMjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2ZsYXRwYWsvZmxhdHBha3V0aWxz
LnB5CisrKyBiL1Rvb2xzL2ZsYXRwYWsvZmxhdHBha3V0aWxzLnB5CkBAIC0zNyw2ICszNyw4IEBA
IGltcG9ydCByZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0
IFN5c3RlbUhvc3QKIGZyb20gd2Via2l0cHkucG9ydC5mYWN0b3J5IGltcG9ydCBQb3J0RmFjdG9y
eQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmxvZ3V0aWxzIGltcG9ydCBjb25maWd1cmVf
bG9nZ2luZworaW1wb3J0IHdlYmtpdHB5LnRoaXJkcGFydHkuYXV0b2luc3RhbGxlZC50b21sCitp
bXBvcnQgdG9tbAogCiB0cnk6CiAgICAgZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNl
ICAjIHB5bGludDogZGlzYWJsZT1FMDYxMQpAQCAtNDIwLDYgKzQyMiw3IEBAIGNsYXNzIFdlYmtp
dEZsYXRwYWs6CiAgICAgICAgIGdlbmVyYWwuYWRkX2FyZ3VtZW50KCItLXVzZS1pY2VjcmVhbSIs
IGRlc3Q9InVzZV9pY2VjcmVhbSIsIGhlbHA9IlVzZSB0aGUgZGlzdHJpYnV0ZWQgaWNlY3JlYW0g
KGljZWNjKSBjb21waWxlci4iLCBhY3Rpb249InN0b3JlX3RydWUiKQogICAgICAgICBnZW5lcmFs
LmFkZF9hcmd1bWVudCgiLXIiLCAiLS1yZWdlbmVyYXRlLXRvb2xjaGFpbnMiLCBkZXN0PSJyZWdl
bmVyYXRlX3Rvb2xjaGFpbnMiLCBhY3Rpb249InN0b3JlX3RydWUiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJSZWdlbmVyYXRlIEljZUNDIGRpc3RyaWJ1YWJsZSB0b29sY2hh
aW4gYXJjaGl2ZXMiKQorICAgICAgICBnZW5lcmFsLmFkZF9hcmd1bWVudCgiLXQiLCAiLS1zY2Nh
Y2hlLXRva2VuIiwgZGVzdD0ic2NjYWNoZV90b2tlbiIpCiAgICAgICAgIGdlbmVyYWwuYWRkX2Fy
Z3VtZW50KCItLXJlcG8iLCBoZWxwPSJGaWxlc3lzdGVtIGFic29sdXRlIHBhdGggdG8gdGhlIEZs
YXRwYWsgcmVwb3NpdG9yeSB0byB1c2UiLCBkZXN0PSJ1c2VyX3JlcG8iKQogCiAgICAgICAgIGRl
YnVnb3B0aW9ucyA9IHBhcnNlci5hZGRfYXJndW1lbnRfZ3JvdXAoIkRlYnVnZ2luZyIpCkBAIC00
NzUsNiArNDc4LDcgQEAgY2xhc3MgV2Via2l0RmxhdHBhazoKICAgICAgICAgc2VsZi51c2VfaWNl
Y3JlYW0gPSBGYWxzZQogICAgICAgICBzZWxmLmljY192ZXJzaW9uID0ge30KICAgICAgICAgc2Vs
Zi5yZWdlbmVyYXRlX3Rvb2xjaGFpbnMgPSBGYWxzZQorICAgICAgICBzZWxmLnNjY2FjaGVfdG9r
ZW4gPSAiIgogCiAgICAgZGVmIGV4ZWN1dGVfY29tbWFuZChzZWxmLCBhcmdzLCBzdGRvdXQ9Tm9u
ZSwgc3RkZXJyPU5vbmUpOgogICAgICAgICBfbG9nLmRlYnVnKCdSdW5uaW5nIGluIHNhbmRib3g6
ICVzXG4nICUgJyAnLmpvaW4oYXJncykpCkBAIC01MjAsNiArNTI0LDcgQEAgY2xhc3MgV2Via2l0
RmxhdHBhazoKICAgICAgICAgc2VsZi5idWlsZF9yb290ID0gb3MucGF0aC5qb2luKHNlbGYuc291
cmNlX3Jvb3QsICdXZWJLaXRCdWlsZCcpCiAgICAgICAgIHNlbGYuYnVpbGRfcGF0aCA9IG9zLnBh
dGguam9pbihzZWxmLmJ1aWxkX3Jvb3QsIHNlbGYucGxhdGZvcm0sIHNlbGYuYnVpbGRfdHlwZSkK
ICAgICAgICAgc2VsZi5jb25maWdfZmlsZSA9IG9zLnBhdGguam9pbihzZWxmLmZsYXRwYWtfYnVp
bGRfcGF0aCwgJ3dlYmtpdF9mbGF0cGFrX2NvbmZpZy5qc29uJykKKyAgICAgICAgc2VsZi5zY2Nh
Y2hlX2NvbmZpZ19maWxlID0gb3MucGF0aC5qb2luKHNlbGYuZmxhdHBha19idWlsZF9wYXRoLCAn
c2NjYWNoZS50b21sJykKIAogICAgICAgICBDb25zb2xlLnF1aWV0ID0gc2VsZi5xdWlldAogICAg
ICAgICBpZiBub3QgY2hlY2tfZmxhdHBhaygpOgpAQCAtNjA3LDYgKzYxMiwxMCBAQCBjbGFzcyBX
ZWJraXRGbGF0cGFrOgogICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgIHJldHVy
biBGYWxzZQogCisgICAgZGVmIGhvc3RfcGF0aF90b19zYW5kYm94X3BhdGgoc2VsZiwgaG9zdF9w
YXRoKToKKyAgICAgICAgIyBGb3Igbm93IHRoaXMgc3VwcG9ydHMgb25seSBmaWxlcyBpbiB0aGUg
V2ViS2l0IHBhdGgKKyAgICAgICAgcmV0dXJuIGhvc3RfcGF0aC5yZXBsYWNlKHNlbGYuc291cmNl
X3Jvb3QsIHNlbGYuc2FuZGJveF9zb3VyY2Vfcm9vdCkKKwogICAgIGRlZiBydW5faW5fc2FuZGJv
eChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLnNldHVwX2J1aWxkZGlyKHN0
ZG91dD1rd2FyZ3MuZ2V0KCJzdGRvdXQiLCBzeXMuc3Rkb3V0KSkKICAgICAgICAgY3dkID0ga3dh
cmdzLnBvcCgiY3dkIiwgTm9uZSkKQEAgLTc2Miw2ICs3NzEsOSBAQCBjbGFzcyBXZWJraXRGbGF0
cGFrOgogICAgICAgICAgICAgX2xvZy5kZWJ1ZygiRW5hYmxpbmcgbmV0d29yayBhY2Nlc3MgZm9y
IHRoZSByZW1vdGUgc2NjYWNoZSIpCiAgICAgICAgICAgICBmbGF0cGFrX2NvbW1hbmQuYXBwZW5k
KHNoYXJlX25ldHdvcmtfb3B0aW9uKQogCisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShz
ZWxmLnNjY2FjaGVfY29uZmlnX2ZpbGUpIGFuZCBub3Qgc2VsZi5yZWdlbmVyYXRlX3Rvb2xjaGFp
bnMgYW5kICJTQ0NBQ0hFX0NPTkYiIG5vdCBpbiBvcy5lbnZpcm9uLmtleXMoKToKKyAgICAgICAg
ICAgICAgICBzYW5kYm94X2Vudmlyb25tZW50WyJTQ0NBQ0hFX0NPTkYiXSA9IHNlbGYuaG9zdF9w
YXRoX3RvX3NhbmRib3hfcGF0aChzZWxmLnNjY2FjaGVfY29uZmlnX2ZpbGUpCisKICAgICAgICAg
b3ZlcnJpZGVfc2NjYWNoZV9zZXJ2ZXJfcG9ydCA9IG9zLmVudmlyb24uZ2V0KCJXRUJLSVRfU0ND
QUNIRV9TRVJWRVJfUE9SVCIpCiAgICAgICAgIGlmIG92ZXJyaWRlX3NjY2FjaGVfc2VydmVyX3Bv
cnQ6CiAgICAgICAgICAgICBfbG9nLmRlYnVnKCJPdmVycmlkaW5nIHNjY2FjaGUgc2VydmVyIHBv
cnQgdG8gJXMiICUgb3ZlcnJpZGVfc2NjYWNoZV9zZXJ2ZXJfcG9ydCkKQEAgLTgzMCw5ICs4NDIs
OSBAQCBjbGFzcyBXZWJraXRGbGF0cGFrOgogCiAgICAgICAgIGlmIHJlZ2VuZXJhdGVfdG9vbGNo
YWluczoKICAgICAgICAgICAgIHNlbGYuaWNjX3ZlcnNpb24gPSB7fQotICAgICAgICAgICAgc2Vs
Zi5zZXR1cF9pY2VjYygiZ2NjIiwgImcrKyIpCi0gICAgICAgICAgICBzZWxmLnNldHVwX2ljZWNj
KCJjbGFuZyIsICJjbGFuZysrIikKLSAgICAgICAgICAgIHNlbGYuc2F2ZV9jb25maWcoKQorICAg
ICAgICAgICAgdG9vbGNoYWlucyA9IHNlbGYucGFja190b29sY2hhaW4oKCJnY2MiLCAiZysrIiks
IHsiL3Vzci9iaW4vYysrIjogIi91c3IvYmluL2crKyJ9KQorICAgICAgICAgICAgdG9vbGNoYWlu
cy5leHRlbmQoc2VsZi5wYWNrX3Rvb2xjaGFpbigoImNsYW5nIiwgImNsYW5nKysiKSwgeyIvdXNy
L2Jpbi9jbGFuZysrIjogIi91c3IvYmluL2NsYW5nKysifSkpCisgICAgICAgICAgICBzZWxmLnNh
dmVfY29uZmlnKHRvb2xjaGFpbnMpCiAKICAgICAgICAgcmV0dXJuIHNlbGYuc2V0dXBfZGV2X2Vu
digpCiAKQEAgLTg0OCwxMiArODYwLDI1IEBAIGNsYXNzIFdlYmtpdEZsYXRwYWs6CiAgICAgZGVm
IGhhc19lbnZpcm9ubWVudChzZWxmKToKICAgICAgICAgcmV0dXJuIG9zLnBhdGguZXhpc3RzKHNl
bGYuZmxhdHBha19idWlsZF9wYXRoKQogCi0gICAgZGVmIHNhdmVfY29uZmlnKHNlbGYpOgorICAg
IGRlZiBzYXZlX2NvbmZpZyhzZWxmLCB0b29sY2hhaW5zKToKICAgICAgICAgd2l0aCBvcGVuKHNl
bGYuY29uZmlnX2ZpbGUsICd3JykgYXMgY29uZmlnOgogICAgICAgICAgICAganNvbl9jb25maWcg
PSB7J2ljZWNjX3ZlcnNpb24nOiBzZWxmLmljY192ZXJzaW9ufQogICAgICAgICAgICAganNvbi5k
dW1wKGpzb25fY29uZmlnLCBjb25maWcpCiAKLSAgICBkZWYgc2V0dXBfaWNlY2Moc2VsZiwgKmNv
bXBpbGVycyk6CisgICAgICAgIGlmIG5vdCBzZWxmLnNjY2FjaGVfdG9rZW46CisgICAgICAgICAg
ICBDb25zb2xlLm1lc3NhZ2UoIk5vIGF1dGhlbnRpY2F0aW9uIHRva2VuIHByb3ZpZGVkLiBSZS1y
dW4gdGhpcyB3aXRoIHRoZSAtdCBvcHRpb24gaWYgYW4gc2NjYWNoZSB0b2tlbiB3YXMgcHJvdmlk
ZWQgdG8geW91LiBTa2lwcGluZyBzY2NhY2hlIGNvbmZpZ3VyYXRpb24gZm9yIG5vdy4iKQorICAg
ICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuc2NjYWNoZV9jb25maWdf
ZmlsZSwgJ3cnKSBhcyBjb25maWc6CisgICAgICAgICAgICBzY2NhY2hlX2NvbmZpZyA9IHsnZGlz
dCc6IHsnc2NoZWR1bGVyX3VybCc6ICdodHRwczovL3NjY2FjaGUuaWdhbGlhLmNvbScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndG9vbGNoYWluX2NhY2hlX3NpemUn
OiA1MzY4NzA5MTIwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F1
dGgnOiB7J3R5cGUnOiAndG9rZW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3Rva2VuJzogc2VsZi5zY2NhY2hlX3Rva2VufSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b29sY2hhaW5zJzogdG9vbGNoYWluc319Cisg
ICAgICAgICAgICB0b21sLmR1bXAoc2NjYWNoZV9jb25maWcsIGNvbmZpZykKKyAgICAgICAgICAg
IENvbnNvbGUubWVzc2FnZSgiQ3JlYXRlZCAlcyBzY2NhY2hlIGNvbmZpZyBmaWxlLiBJdCB3aWxs
IGF1dG9tYXRpY2FsbHkgYmUgdXNlZCB3aGVuIGJ1aWxkaW5nIFdlYktpdCIsIHNlbGYuc2NjYWNo
ZV9jb25maWdfZmlsZSkKKworICAgIGRlZiBwYWNrX3Rvb2xjaGFpbihzZWxmLCBjb21waWxlcnMs
IHBhdGhfbWFwcGluZyk6CiAgICAgICAgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxl
KCkgYXMgdG1wZmlsZToKICAgICAgICAgICAgIGNvbW1hbmQgPSBbJ2ljZWNjJywgJy0tYnVpbGQt
bmF0aXZlJ10KICAgICAgICAgICAgIGNvbW1hbmQuZXh0ZW5kKFsiL3Vzci9iaW4vJXMiICUgY29t
cGlsZXIgZm9yIGNvbXBpbGVyIGluIGNvbXBpbGVyc10pCkBAIC04NjksNiArODk0LDE1IEBAIGNs
YXNzIFdlYmtpdEZsYXRwYWs6CiAgICAgICAgICAgICBzZWxmLmljY192ZXJzaW9uW2NvbXBpbGVy
c1swXV0gPSBhcmNoaXZlX2ZpbGVuYW1lCiAgICAgICAgICAgICBDb25zb2xlLm1lc3NhZ2UoIkNy
ZWF0ZWQgJXMgc2VsZi1jb250YWluZWQgdG9vbGNoYWluIGFyY2hpdmUiLCBhcmNoaXZlX2ZpbGVu
YW1lKQogCisgICAgICAgICAgICBzY2NhY2hlX3Rvb2xjaGFpbnMgPSBbXQorICAgICAgICAgICAg
Zm9yIChjb21waWxlcl9leGVjdXRhYmxlLCBhcmNoaXZlX2NvbXBpbGVyX2V4ZWN1dGFibGUpIGlu
IHBhdGhfbWFwcGluZy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpdGVtID0geyd0eXBl
JzogJ3BhdGhfb3ZlcnJpZGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBpbGVyX2V4
ZWN1dGFibGUnOiBjb21waWxlcl9leGVjdXRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAg
J2FyY2hpdmUnOiBhcmNoaXZlX2ZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Fy
Y2hpdmVfY29tcGlsZXJfZXhlY3V0YWJsZSc6IGFyY2hpdmVfY29tcGlsZXJfZXhlY3V0YWJsZX0K
KyAgICAgICAgICAgICAgICBzY2NhY2hlX3Rvb2xjaGFpbnMuYXBwZW5kKGl0ZW0pCisgICAgICAg
ICAgICByZXR1cm4gc2NjYWNoZV90b29sY2hhaW5zCisKICAgICBkZWYgc2V0dXBfZGV2X2Vudihz
ZWxmKToKICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihzZWxmLmZs
YXRwYWtfYnVpbGRfcGF0aCwgInJ1bnRpbWUiLCAib3JnLndlYmtpdC5TZGsiKSkgb3Igc2VsZi51
cGRhdGU6CiAgICAgICAgICAgICBzZWxmLmluc3RhbGxfYWxsKCkK
</data>
<flag name="review"
          id="414547"
          type_id="1"
          status="+"
          setter="clopez"
    />
    <flag name="commit-queue"
          id="414564"
          type_id="3"
          status="-"
          setter="clopez"
    />
          </attachment>
      

    </bug>

</bugzilla>