<?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>216396</bug_id>
          
          <creation_ts>2020-09-10 19:38:10 -0700</creation_ts>
          <short_desc>[webkitcorepy] Disable AutoInstaller with environment variable</short_desc>
          <delta_ts>2020-09-14 13:22:25 -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 Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=216480</see_also>
          <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="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1687637</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-09-10 19:38:10 -0700</bug_when>
    <thetext>Feature request from Dean Johnson to be able to disable the AutoInstaller with an environment variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687638</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-10 19:38:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/68680933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687640</commentid>
    <comment_count>2</comment_count>
      <attachid>408508</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-09-10 19:45:22 -0700</bug_when>
    <thetext>Created attachment 408508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687750</commentid>
    <comment_count>3</comment_count>
      <attachid>408508</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2020-09-11 10:14:44 -0700</bug_when>
    <thetext>Comment on attachment 408508
Patch

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

Unofficial r+ with some simplification of enable/disable.

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:300
&gt; +    _ENVIRONMENT_VARIABLE = &apos;WEBKITCOREPY_AUTOINSTALL&apos;

Nit: Can we make the name of the variable and env far more descriptive? e.g.
_ENVIRONMENT_VARIABLE -&gt; ENABLED_ENV_VAR
WEBKITCOREPY_AUTOINSTALL -&gt; DISABLE_WEBKITCOREPY_AUTOINSTALLER

It would also require inverting the checks below, but since the default for the auto installer is &quot;enabled&quot; I think including &quot;disable&quot; in the envvar is important.

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:303
&gt;      enabled = False

Why does this value default to False if it&apos;s actually enabled when it&apos;s imported/used?

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:335
&gt;      def enable(cls):

I think it&apos;d be cleaner to just use one function / check for this and name it &apos;enabled&apos;. I can&apos;t really think of a use-case where you&apos;d want to enable, then disable, in the same runtime (other than testing, in which case you can mock).

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:336
&gt; +        if cls._enabled_variable() is False:

An example of this is:
```
@classmethod
def enabled(cls):
    if os.environ.get(cls._ENVIRONMENT_VARIABLE) in [&apos;0&apos;, &apos;FALSE&apos;, &apos;false&apos;, &apos;NO&apos;, &apos;no&apos;]:
        return False
    return True
```

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:387
&gt; +        if cls._enabled_variable() is False:

Nit: I found in local testing that doing an early return in AutoInstaller.register allowed me to skip all of the auto installer, does this accomplish the same thing? I think it might be better to do the check in `register` since it&apos;s the function most likely to be first looked at by a client when looking into issues. This is just a preference though and doesn&apos;t need to change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687791</commentid>
    <comment_count>4</comment_count>
      <attachid>408508</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-09-11 13:04:44 -0700</bug_when>
    <thetext>Comment on attachment 408508
Patch

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

&gt;&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:303
&gt;&gt;      enabled = False
&gt; 
&gt; Why does this value default to False if it&apos;s actually enabled when it&apos;s imported/used?

Because the AutoInstaller needs to have a target directory set before it&apos;s enabled. webkitpy enables the Autoinstaller when it&apos;s imported, but that&apos;s a decision that&apos;s up to our client programs.

&gt;&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:335
&gt;&gt;      def enable(cls):
&gt; 
&gt; I think it&apos;d be cleaner to just use one function / check for this and name it &apos;enabled&apos;. I can&apos;t really think of a use-case where you&apos;d want to enable, then disable, in the same runtime (other than testing, in which case you can mock).

Good point, I think removing &quot;enable&quot; and &quot;disable&quot; will go a long way to clarifying this patch.

&gt;&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:387
&gt;&gt; +        if cls._enabled_variable() is False:
&gt; 
&gt; Nit: I found in local testing that doing an early return in AutoInstaller.register allowed me to skip all of the auto installer, does this accomplish the same thing? I think it might be better to do the check in `register` since it&apos;s the function most likely to be first looked at by a client when looking into issues. This is just a preference though and doesn&apos;t need to change.

Registered packages won&apos;t be installed if we don&apos;t have a directory to install them to. I think we still want to be able to iterate through all packages the AutoInstaller has registered for a give script or configuration. Among other things, it would let us generate a version locked requirements.txt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687804</commentid>
    <comment_count>5</comment_count>
      <attachid>408559</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-09-11 13:41:53 -0700</bug_when>
    <thetext>Created attachment 408559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687853</commentid>
    <comment_count>6</comment_count>
      <attachid>408559</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2020-09-11 16:42:10 -0700</bug_when>
    <thetext>Comment on attachment 408559
Patch

Unofficial r+; LGTM. Thanks for doing this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687855</commentid>
    <comment_count>7</comment_count>
      <attachid>408559</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2020-09-11 17:02:31 -0700</bug_when>
    <thetext>Comment on attachment 408559
Patch

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

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:326
&gt; +        if os.environ.get(cls.DISABLE_ENV_VAR) not in [&apos;0&apos;, &apos;FALSE&apos;, &apos;false&apos;, &apos;NO&apos;, &apos;no&apos;, None]:

Should we also consider to add &apos;No&apos; and &apos;False&apos; which seem quite common as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688273</commentid>
    <comment_count>8</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-09-14 09:33:35 -0700</bug_when>
    <thetext>(In reply to dewei_zhu from comment #7)
&gt; Comment on attachment 408559 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=408559&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:326
&gt; &gt; +        if os.environ.get(cls.DISABLE_ENV_VAR) not in [&apos;0&apos;, &apos;FALSE&apos;, &apos;false&apos;, &apos;NO&apos;, &apos;no&apos;, None]:
&gt; 
&gt; Should we also consider to add &apos;No&apos; and &apos;False&apos; which seem quite common as
&gt; well?

Will add! Also, waiting on https://bugs.webkit.org/show_bug.cgi?id=216480 so that we can log everything in the same way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688289</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-14 10:10:44 -0700</bug_when>
    <thetext>Committed r267019: &lt;https://trac.webkit.org/changeset/267019&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408559.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688290</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-09-14 10:12:03 -0700</bug_when>
    <thetext>(In reply to EWS from comment #9)
&gt; Committed r267019: &lt;https://trac.webkit.org/changeset/267019&gt;
&gt; 
&gt; All reviewed patches have been landed. Closing bug and clearing flags on
&gt; attachment 408559 [details].

Oops, meant to land https://bugs.webkit.org/show_bug.cgi?id=216480 first, going to need a follow-up fix here....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688322</commentid>
    <comment_count>11</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-09-14 11:15:11 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688323</commentid>
    <comment_count>12</comment_count>
      <attachid>408728</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-09-14 11:15:12 -0700</bug_when>
    <thetext>Created attachment 408728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688389</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-14 13:22:24 -0700</bug_when>
    <thetext>Committed r267035: &lt;https://trac.webkit.org/changeset/267035&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408728.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408508</attachid>
            <date>2020-09-10 19:45:22 -0700</date>
            <delta_ts>2020-09-11 13:41:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216396-20200910194521.patch</filename>
            <type>text/plain</type>
            <size>3962</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjkwNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE5IEBACisyMDIwLTA5LTEwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBEaXNhYmxlIEF1dG9JbnN0YWxsZXIgd2l0aCBl
bnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE2Mzk2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82ODY4MDkzMz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHk6IEJ1bXAgdmVy
c2lvbi4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29y
ZXB5L2F1dG9pbnN0YWxsLnB5OgorICAgICAgICAoQXV0b0luc3RhbGwpOgorICAgICAgICAoQXV0
b0luc3RhbGwuX2VuYWJsZWRfdmFyaWFibGUpOiBDaGVjayB0aGUgdmFsdWUgb2YgV0VCS0lUQ09S
RVBZX0FVVE9JTlNUQUxMLgorICAgICAgICAoQXV0b0luc3RhbGwuZW5hYmxlKTogVmFsdWUgb2Yg
V0VCS0lUQ09SRVBZX0FVVE9JTlNUQUxMIG1heSBvdmVycmlkZSB0aGlzIHJlcXVlc3QuCisgICAg
ICAgIChBdXRvSW5zdGFsbC5kaXNhYmxlKTogRGl0dG8uCisgICAgICAgIChBdXRvSW5zdGFsbC5z
ZXRfZGlyZWN0b3J5KTogRGl0dG8uCisKIDIwMjAtMDktMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI2Njg0MiBhbmQg
cjI2Njg4My4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJr
aXRjb3JlcHkvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQkocmV2aXNpb24gMjY2ODk2
KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9f
X2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBmcm9tIHdlYmtpdGNv
cmVweS50aW1lb3V0IGltcG9ydCBUaW1lb3V0CiBmcm9tIHdlYmtpdGNvcmVweS5zdWJwcm9jZXNz
X3V0aWxzIGltcG9ydCBUaW1lb3V0RXhwaXJlZCwgQ29tcGxldGVkUHJvY2VzcywgcnVuCiBmcm9t
IHdlYmtpdGNvcmVweS5vdXRwdXRfY2FwdHVyZSBpbXBvcnQgTG9nZ2VyQ2FwdHVyZSwgT3V0cHV0
Q2FwdHVyZSwgT3V0cHV0RHVwbGljYXRlCiAKLXZlcnNpb24gPSBWZXJzaW9uKDAsIDQsIDcpCit2
ZXJzaW9uID0gVmVyc2lvbigwLCA0LCA4KQogCiBmcm9tIHdlYmtpdGNvcmVweS5hdXRvaW5zdGFs
bCBpbXBvcnQgUGFja2FnZSwgQXV0b0luc3RhbGwKIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywg
MCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29y
ZXB5L2F1dG9pbnN0YWxsLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvYXV0b2luc3RhbGwucHkJKHJldmlzaW9uIDI2Njg5
NikKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkv
YXV0b2luc3RhbGwucHkJKHdvcmtpbmcgY29weSkKQEAgLTI5Nyw2ICsyOTcsOCBAQCBjbGFzcyBQ
YWNrYWdlKG9iamVjdCk6CiAKIAogY2xhc3MgQXV0b0luc3RhbGwob2JqZWN0KToKKyAgICBfRU5W
SVJPTk1FTlRfVkFSSUFCTEUgPSAnV0VCS0lUQ09SRVBZX0FVVE9JTlNUQUxMJworCiAgICAgX2Vu
YWJsZWQgPSBOb25lCiAgICAgZW5hYmxlZCA9IEZhbHNlCiAgICAgZGlyZWN0b3J5ID0gTm9uZQpA
QCAtMzIyLDEyICszMjQsMzQgQEAgY2xhc3MgQXV0b0luc3RhbGwob2JqZWN0KToKICAgICAgICAg
cmV0dXJuIHVybG9wZW4odXJsLCB0aW1lb3V0PWNscy50aW1lb3V0KQogCiAgICAgQGNsYXNzbWV0
aG9kCisgICAgZGVmIF9lbmFibGVkX3ZhcmlhYmxlKGNscyk6CisgICAgICAgIGlmIG9zLmVudmly
b24uZ2V0KGNscy5fRU5WSVJPTk1FTlRfVkFSSUFCTEUpIGluIFsnMCcsICdGQUxTRScsICdmYWxz
ZScsICdOTycsICdubyddOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIG9z
LmVudmlyb24uZ2V0KGNscy5fRU5WSVJPTk1FTlRfVkFSSUFCTEUpOgorICAgICAgICAgICAgcmV0
dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIEBjbGFzc21ldGhvZAogICAgIGRl
ZiBlbmFibGUoY2xzKToKKyAgICAgICAgaWYgY2xzLl9lbmFibGVkX3ZhcmlhYmxlKCkgaXMgRmFs
c2U6CisgICAgICAgICAgICBwcmludCgnRW52aXJvbm1lbnQgdmFyaWFibGUge309e30gb3ZlcnJp
ZGluZyBlbmFibGluZyByZXF1ZXN0Jy5mb3JtYXQoCisgICAgICAgICAgICAgICAgY2xzLl9FTlZJ
Uk9OTUVOVF9WQVJJQUJMRSwKKyAgICAgICAgICAgICAgICBvcy5lbnZpcm9uLmdldChjbHMuX0VO
VklST05NRU5UX1ZBUklBQkxFKSwKKyAgICAgICAgICAgICkpCisgICAgICAgICAgICByZXR1cm4K
KwogICAgICAgICBjbHMuX2VuYWJsZWQgPSBUcnVlCiAgICAgICAgIGNscy5lbmFibGVkID0gVHJ1
ZQogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGRpc2FibGUoY2xzKToKKyAgICAgICAgaWYg
Y2xzLl9lbmFibGVkX3ZhcmlhYmxlKCkgaXMgRmFsc2U6CisgICAgICAgICAgICBwcmludCgnRW52
aXJvbm1lbnQgdmFyaWFibGUge309e30gb3ZlcnJpZGluZyBkaXNhYmxpbmcgcmVxdWVzdCcuZm9y
bWF0KAorICAgICAgICAgICAgICAgIGNscy5fRU5WSVJPTk1FTlRfVkFSSUFCTEUsCisgICAgICAg
ICAgICAgICAgb3MuZW52aXJvbi5nZXQoY2xzLl9FTlZJUk9OTUVOVF9WQVJJQUJMRSksCisgICAg
ICAgICAgICApKQorICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgY2xzLl9lbmFibGVkID0g
RmFsc2UKICAgICAgICAgY2xzLmVuYWJsZWQgPSBGYWxzZQogCkBAIC0zNjAsNiArMzg0LDE0IEBA
IGNsYXNzIEF1dG9JbnN0YWxsKG9iamVjdCk6CiAgICAgICAgIGlmIG5vdCBkaXJlY3Rvcnkgb3Ig
bm90IGlzaW5zdGFuY2UoZGlyZWN0b3J5LCBzdHIpOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigne30gaXMgYW4gaW52YWxpZCBhdXRvaW5zdGFsbCBkaXJlY3RvcnknLmZvcm1hdChkaXJl
Y3RvcnkpKQogCisgICAgICAgIGlmIGNscy5fZW5hYmxlZF92YXJpYWJsZSgpIGlzIEZhbHNlOgor
ICAgICAgICAgICAgcHJpbnQoJ1JlcXVlc3QgdG8gc2V0IGF1dG9pbnN0YWxsIGRpcmVjdG9yeSB0
byB7fScuZm9ybWF0KGRpcmVjdG9yeSkpCisgICAgICAgICAgICBwcmludCgnRW52aXJvbm1lbnQg
dmFyaWFibGUge309e30gb3ZlcnJpZGluZyByZXF1ZXN0Jy5mb3JtYXQoCisgICAgICAgICAgICAg
ICAgY2xzLl9FTlZJUk9OTUVOVF9WQVJJQUJMRSwKKyAgICAgICAgICAgICAgICBvcy5lbnZpcm9u
LmdldChjbHMuX0VOVklST05NRU5UX1ZBUklBQkxFKSwKKyAgICAgICAgICAgICkpCisgICAgICAg
ICAgICByZXR1cm4KKwogICAgICAgICBkaXJlY3RvcnkgPSBvcy5wYXRoLmFic3BhdGgoZGlyZWN0
b3J5KQogICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2RpcihkaXJlY3RvcnkpOgogICAgICAgICAg
ICAgY3JlYXRpb25fcm9vdCA9IGRpcmVjdG9yeQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408559</attachid>
            <date>2020-09-11 13:41:53 -0700</date>
            <delta_ts>2020-09-14 11:15:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216396-20200911144152.patch</filename>
            <type>text/plain</type>
            <size>4104</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjkzNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDIwLTA5LTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBEaXNhYmxlIEF1dG9JbnN0YWxsZXIgd2l0aCBl
bnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE2Mzk2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82ODY4MDkzMz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHk6CisgICAgICAg
ICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9hdXRvaW5zdGFs
bC5weToKKyAgICAgICAgKEF1dG9JbnN0YWxsKToKKyAgICAgICAgKEF1dG9JbnN0YWxsLmVuYWJs
ZWQpOiBDaGVjayBESVNBQkxFX1dFQktJVENPUkVQWV9BVVRPSU5TVEFMTEVSIHRvIHNlZSBpZiB0
aGUgYXV0b2luc3RhbGxlcgorICAgICAgICBoYXMgYmVlbiBleHBsaWNpdGx5IGRpc2FibGVkLgor
ICAgICAgICAoQXV0b0luc3RhbGwuc2V0X2RpcmVjdG9yeSk6IEVhcmx5IGV4aXQgaWYgdGhlIGF1
dG9pbnN0YWxsZXIgaXMgZXhwbGljaXRseSBkaXNhYmxlZC4KKyAgICAgICAgKEF1dG9JbnN0YWxs
LmZpbmRfbW9kdWxlKToKKyAgICAgICAgKEF1dG9JbnN0YWxsLmVuYWJsZSk6IERlbGV0ZWQuCisg
ICAgICAgIChBdXRvSW5zdGFsbC5kaXNhYmxlKTogRGVsZXRlZC4KKwogMjAyMC0wOS0xMSAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNjY2
MzQpOiBXS1RodW1ibmFpbFZpZXdSZXNldHNWaWV3U3RhdGVXaGVuVW5wYXJlbnRlZCBpcyBmbGFr
eQpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVw
eS9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5CShyZXZpc2lvbiAyNjY5MzUpCisrKyBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9f
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIGZyb20gd2Via2l0Y29yZXB5LnRp
bWVvdXQgaW1wb3J0IFRpbWVvdXQKIGZyb20gd2Via2l0Y29yZXB5LnN1YnByb2Nlc3NfdXRpbHMg
aW1wb3J0IFRpbWVvdXRFeHBpcmVkLCBDb21wbGV0ZWRQcm9jZXNzLCBydW4KIGZyb20gd2Via2l0
Y29yZXB5Lm91dHB1dF9jYXB0dXJlIGltcG9ydCBMb2dnZXJDYXB0dXJlLCBPdXRwdXRDYXB0dXJl
LCBPdXRwdXREdXBsaWNhdGUKIAotdmVyc2lvbiA9IFZlcnNpb24oMCwgNCwgNykKK3ZlcnNpb24g
PSBWZXJzaW9uKDAsIDQsIDgpCiAKIGZyb20gd2Via2l0Y29yZXB5LmF1dG9pbnN0YWxsIGltcG9y
dCBQYWNrYWdlLCBBdXRvSW5zdGFsbAogaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvYXV0
b2luc3RhbGwucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
Y29yZXB5L3dlYmtpdGNvcmVweS9hdXRvaW5zdGFsbC5weQkocmV2aXNpb24gMjY2OTM1KQorKysg
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9hdXRvaW5z
dGFsbC5weQkod29ya2luZyBjb3B5KQpAQCAtMjk3LDggKzI5Nyw4IEBAIGNsYXNzIFBhY2thZ2Uo
b2JqZWN0KToKIAogCiBjbGFzcyBBdXRvSW5zdGFsbChvYmplY3QpOgotICAgIF9lbmFibGVkID0g
Tm9uZQotICAgIGVuYWJsZWQgPSBGYWxzZQorICAgIERJU0FCTEVfRU5WX1ZBUiA9ICdESVNBQkxF
X1dFQktJVENPUkVQWV9BVVRPSU5TVEFMTEVSJworCiAgICAgZGlyZWN0b3J5ID0gTm9uZQogICAg
IGluZGV4ID0gJ3B5cGkub3JnJwogICAgIHRpbWVvdXQgPSAzMApAQCAtMzIyLDE0ICszMjIsMTAg
QEAgY2xhc3MgQXV0b0luc3RhbGwob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHVybG9wZW4odXJs
LCB0aW1lb3V0PWNscy50aW1lb3V0KQogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGVuYWJs
ZShjbHMpOgotICAgICAgICBjbHMuX2VuYWJsZWQgPSBUcnVlCi0gICAgICAgIGNscy5lbmFibGVk
ID0gVHJ1ZQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGRpc2FibGUoY2xzKToKLSAgICAg
ICAgY2xzLl9lbmFibGVkID0gRmFsc2UKLSAgICAgICAgY2xzLmVuYWJsZWQgPSBGYWxzZQorICAg
IGRlZiBlbmFibGVkKGNscyk6CisgICAgICAgIGlmIG9zLmVudmlyb24uZ2V0KGNscy5ESVNBQkxF
X0VOVl9WQVIpIG5vdCBpbiBbJzAnLCAnRkFMU0UnLCAnZmFsc2UnLCAnTk8nLCAnbm8nLCBOb25l
XToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gVHJ1ZSBpZiBjbHMu
ZGlyZWN0b3J5IGVsc2UgTm9uZQogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHVzZXJzcGFj
ZV9zaG91bGRfb3duKGNscywgcGF0aCk6CkBAIC0zNjAsNiArMzU2LDE0IEBAIGNsYXNzIEF1dG9J
bnN0YWxsKG9iamVjdCk6CiAgICAgICAgIGlmIG5vdCBkaXJlY3Rvcnkgb3Igbm90IGlzaW5zdGFu
Y2UoZGlyZWN0b3J5LCBzdHIpOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigne30gaXMg
YW4gaW52YWxpZCBhdXRvaW5zdGFsbCBkaXJlY3RvcnknLmZvcm1hdChkaXJlY3RvcnkpKQogCisg
ICAgICAgIGlmIGNscy5lbmFibGVkKCkgaXMgRmFsc2U6CisgICAgICAgICAgICBwcmludCgnUmVx
dWVzdCB0byBzZXQgYXV0b2luc3RhbGwgZGlyZWN0b3J5IHRvIHt9Jy5mb3JtYXQoZGlyZWN0b3J5
KSkKKyAgICAgICAgICAgIHByaW50KCdFbnZpcm9ubWVudCB2YXJpYWJsZSB7fT17fSBvdmVycmlk
aW5nIHJlcXVlc3QnLmZvcm1hdCgKKyAgICAgICAgICAgICAgICBjbHMuRElTQUJMRV9FTlZfVkFS
LAorICAgICAgICAgICAgICAgIG9zLmVudmlyb24uZ2V0KGNscy5ESVNBQkxFX0VOVl9WQVIpLAor
ICAgICAgICAgICAgKSkKKyAgICAgICAgICAgIHJldHVybgorCiAgICAgICAgIGRpcmVjdG9yeSA9
IG9zLnBhdGguYWJzcGF0aChkaXJlY3RvcnkpCiAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZGly
KGRpcmVjdG9yeSk6CiAgICAgICAgICAgICBjcmVhdGlvbl9yb290ID0gZGlyZWN0b3J5CkBAIC0z
ODAsOSArMzg0LDYgQEAgY2xhc3MgQXV0b0luc3RhbGwob2JqZWN0KToKIAogICAgICAgICBzeXMu
cGF0aC5pbnNlcnQoMCwgZGlyZWN0b3J5KQogICAgICAgICBjbHMuZGlyZWN0b3J5ID0gZGlyZWN0
b3J5Ci0gICAgICAgIGlmIGNscy5fZW5hYmxlZCBpcyBOb25lOgotICAgICAgICAgICAgY2xzLl9l
bmFibGVkID0gVHJ1ZQotICAgICAgICAgICAgY2xzLmVuYWJsZWQgPSBUcnVlCiAKICAgICBAY2xh
c3NtZXRob2QKICAgICBkZWYgc2V0X2luZGV4KGNscywgaW5kZXgsIGNoZWNrPVRydWUsIGZhdGFs
PUZhbHNlKToKQEAgLTQ2OCw3ICs0NjksNyBAQCBjbGFzcyBBdXRvSW5zdGFsbChvYmplY3QpOgog
CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGZpbmRfbW9kdWxlKGNscywgZnVsbG5hbWUsIHBh
dGg9Tm9uZSk6Ci0gICAgICAgIGlmIG5vdCBjbHMuZW5hYmxlZCBvciBwYXRoIGlzIG5vdCBOb25l
OgorICAgICAgICBpZiBub3QgY2xzLmVuYWJsZWQoKSBvciBwYXRoIGlzIG5vdCBOb25lOgogICAg
ICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgbmFtZSA9IGZ1bGxuYW1lLnNwbGl0KCcuJylbMF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408728</attachid>
            <date>2020-09-14 11:15:12 -0700</date>
            <delta_ts>2020-09-14 13:22:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216396-20200914111511.patch</filename>
            <type>text/plain</type>
            <size>2988</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NzAyMykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDIwLTA5LTE0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBEaXNhYmxlIEF1dG9JbnN0YWxsZXIgd2l0aCBl
bnZpcm9ubWVudCB2YXJpYWJsZSAoRm9sbG93LXVwIGZpeCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjM5NgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNjg2ODA5MzM+CisKKyAgICAgICAgVW5yZXZpZXdlZCBmb2xsb3ctdXAgZml4LgorCisgICAg
ICAgIHIyNjcwMTkgYWNjaWRlbnRseSBsYW5kZWQgd2l0aG91dCB0aGUgc3VwcG9ydCBvZiByMjY3
MDE5LgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNv
cmVweS9fX2luaXRfXy5weTogQnVtcCB2ZXJzaW9uLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvYXV0b2luc3RhbGwucHk6CisgICAgICAgIChB
dXRvSW5zdGFsbC5lbmFibGVkKTogQWRkIEZhbHNlIGFuZCBObyB0byB0aGUgbGlzdCBvZiBlbnZp
cm9ubWVudCB2YXJpYWJsZXMgd2hpY2ggcmVzb2x2ZSB0byAnRmFsc2UnLgorICAgICAgICAoQXV0
b0luc3RhbGwuc2V0X2RpcmVjdG9yeSk6IFVzZSBBdXRvSW5zdGFsbC5sb2cgaW5zdGVhZCBvZiBw
cmludCguLi4pLgorCiAyMDIwLTA5LTE0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbd2Via2l0Y29yZXB5XSBMb2cgYXV0b2luc3RhbGwgZGV0YWlscyBl
dmVuIHdpdGhvdXQgYSBsb2dnZXIgY29uZmlndXJlZApJbmRleDogVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5p
dF9fLnB5CShyZXZpc2lvbiAyNjcwMjMpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3
ICszNSw3IEBAIGZyb20gd2Via2l0Y29yZXB5LnRpbWVvdXQgaW1wb3J0IFRpbWVvdXQKIGZyb20g
d2Via2l0Y29yZXB5LnN1YnByb2Nlc3NfdXRpbHMgaW1wb3J0IFRpbWVvdXRFeHBpcmVkLCBDb21w
bGV0ZWRQcm9jZXNzLCBydW4KIGZyb20gd2Via2l0Y29yZXB5Lm91dHB1dF9jYXB0dXJlIGltcG9y
dCBMb2dnZXJDYXB0dXJlLCBPdXRwdXRDYXB0dXJlLCBPdXRwdXREdXBsaWNhdGUKIAotdmVyc2lv
biA9IFZlcnNpb24oMCwgNCwgOSkKK3ZlcnNpb24gPSBWZXJzaW9uKDAsIDQsIDEwKQogCiBmcm9t
IHdlYmtpdGNvcmVweS5hdXRvaW5zdGFsbCBpbXBvcnQgUGFja2FnZSwgQXV0b0luc3RhbGwKIGlm
IHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L2F1dG9pbnN0YWxsLnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvYXV0b2lu
c3RhbGwucHkJKHJldmlzaW9uIDI2NzAyMykKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdGNvcmVweS93ZWJraXRjb3JlcHkvYXV0b2luc3RhbGwucHkJKHdvcmtpbmcgY29weSkKQEAg
LTMyNSw3ICszMjUsNyBAQCBjbGFzcyBBdXRvSW5zdGFsbChvYmplY3QpOgogCiAgICAgQGNsYXNz
bWV0aG9kCiAgICAgZGVmIGVuYWJsZWQoY2xzKToKLSAgICAgICAgaWYgb3MuZW52aXJvbi5nZXQo
Y2xzLkRJU0FCTEVfRU5WX1ZBUikgbm90IGluIFsnMCcsICdGQUxTRScsICdmYWxzZScsICdOTycs
ICdubycsIE5vbmVdOgorICAgICAgICBpZiBvcy5lbnZpcm9uLmdldChjbHMuRElTQUJMRV9FTlZf
VkFSKSBub3QgaW4gWycwJywgJ0ZBTFNFJywgJ0ZhbHNlJywgJ2ZhbHNlJywgJ05PJywgJ05vJywg
J25vJywgTm9uZV06CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgcmV0dXJuIFRy
dWUgaWYgY2xzLmRpcmVjdG9yeSBlbHNlIE5vbmUKIApAQCAtMzU5LDggKzM1OSw4IEBAIGNsYXNz
IEF1dG9JbnN0YWxsKG9iamVjdCk6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd7fSBp
cyBhbiBpbnZhbGlkIGF1dG9pbnN0YWxsIGRpcmVjdG9yeScuZm9ybWF0KGRpcmVjdG9yeSkpCiAK
ICAgICAgICAgaWYgY2xzLmVuYWJsZWQoKSBpcyBGYWxzZToKLSAgICAgICAgICAgIHByaW50KCdS
ZXF1ZXN0IHRvIHNldCBhdXRvaW5zdGFsbCBkaXJlY3RvcnkgdG8ge30nLmZvcm1hdChkaXJlY3Rv
cnkpKQotICAgICAgICAgICAgcHJpbnQoJ0Vudmlyb25tZW50IHZhcmlhYmxlIHt9PXt9IG92ZXJy
aWRpbmcgcmVxdWVzdCcuZm9ybWF0KAorICAgICAgICAgICAgQXV0b0luc3RhbGwubG9nKCdSZXF1
ZXN0IHRvIHNldCBhdXRvaW5zdGFsbCBkaXJlY3RvcnkgdG8ge30nLmZvcm1hdChkaXJlY3Rvcnkp
KQorICAgICAgICAgICAgQXV0b0luc3RhbGwubG9nKCdFbnZpcm9ubWVudCB2YXJpYWJsZSB7fT17
fSBvdmVycmlkaW5nIHJlcXVlc3QnLmZvcm1hdCgKICAgICAgICAgICAgICAgICBjbHMuRElTQUJM
RV9FTlZfVkFSLAogICAgICAgICAgICAgICAgIG9zLmVudmlyb24uZ2V0KGNscy5ESVNBQkxFX0VO
Vl9WQVIpLAogICAgICAgICAgICAgKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>