<?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>38870</bug_id>
          
          <creation_ts>2010-05-10 15:06:12 -0700</creation_ts>
          <short_desc>svn.webkit.org needs a post-commit hook to fix svn:author from commit-queue patches</short_desc>
          <delta_ts>2010-12-24 11:55:50 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          <dependson>29274</dependson>
    
    <dependson>28291</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="William Siegrist">wsiegrist</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>wsiegrist</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>223528</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-10 15:06:12 -0700</bug_when>
    <thetext>svn.webkit.org needs a post-commit hook to fix svn:author from commit-queue patches

Proposal is detailed here:
https://lists.webkit.org/pipermail/webkit-dev/2010-April/012350.html

Should be simple to write.  It needs to be tested locally (to make sure it can&apos;t cause the commit to fail in any way, even if it fails), and then handed off to Bill Siegrist for integration with svn.webkit.org</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223529</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-10 15:07:51 -0700</bug_when>
    <thetext>Bug 29274 should also be fixed before this is turned on to make it possible to distinguish patches which were landed via the commit-queue from those which weren&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223532</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-10 15:11:06 -0700</bug_when>
    <thetext>Tests that this post-commit hook should pass:

- correctly do nothing patches where the author is not a committer (committers.py or the svn auth file)
- correctly not block the commit in case of some sort of lookup error (the fix-the-author script should be separate)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223534</commentid>
    <comment_count>3</comment_count>
    <who name="William Siegrist">wsiegrist</who>
    <bug_when>2010-05-10 15:15:25 -0700</bug_when>
    <thetext>This part of the hook will have to be run synchronously and finish before anything else in the hook runs, so that everything else will see the correct author (emails to -changes, buildbot, etc).  So we&apos;ll need a way of making this timeout if it hangs for any reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223535</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-10 15:16:40 -0700</bug_when>
    <thetext>Are our existing commit hooks in SVN somewhere?  If you show me an example, I might be able to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223537</commentid>
    <comment_count>5</comment_count>
    <who name="William Siegrist">wsiegrist</who>
    <bug_when>2010-05-10 15:22:11 -0700</bug_when>
    <thetext>The hook script is not in svn. The hook script is just a shell script, with two variables already defined for you (path to the repo and the revision number).  I can make webkitpy available on that server as well if that helps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223576</commentid>
    <comment_count>6</comment_count>
      <attachid>55619</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-10 16:31:17 -0700</bug_when>
    <thetext>Created attachment 55619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223577</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-10 16:32:55 -0700</bug_when>
    <thetext>This is more of a first draft for discussion.  Open questions:

1) Should we only change the svn:author for the commit-queue?
2) How does this code handle the case where we have a users bugzilla email in committers.py but not their svn email?
3) Can post-commit call this script directly or do we need a shell script in between?
4) What&apos;s our testing plan here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223579</commentid>
    <comment_count>8</comment_count>
      <attachid>55621</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-10 16:35:24 -0700</bug_when>
    <thetext>Created attachment 55621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223581</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-10 16:38:24 -0700</bug_when>
    <thetext>I should also say that I don&apos;t have any clue if this script works because I don&apos;t know how to test it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223584</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-10 16:42:01 -0700</bug_when>
    <thetext>I think in the end we&apos;re going to want to use the svn auth file (whatever that looks like).

We should be able to test this using various ChangeLog entries as test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223587</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-10 16:45:33 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; This is more of a first draft for discussion.  Open questions:

Thank you!

&gt; 1) Should we only change the svn:author for the commit-queue?

Yes.  Otherwise you could &quot;commit as&quot; darin just by putting his name in the ChangeLog.  Eeek.
Ideally we should create a separate commit account for the commit-queue. :)

&gt; 2) How does this code handle the case where we have a users bugzilla email in committers.py but not their svn email?

I don&apos;t think we should use the committers.py list.  It&apos;s nice, but it&apos;s not as accurate as the theoretical svn auth file on the server (which I know nothing about).

&gt; 3) Can post-commit call this script directly or do we need a shell script in between?

I don&apos;t see why not.

&gt; 4) What&apos;s our testing plan here?

If we&apos;re using webkitpy, we should be able to write python unit tests for testing what happens with various ChangeLog messages.  scm_unittests or checkout_unittests would be appropriate places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223588</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-10 16:48:47 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I should also say that I don&apos;t have any clue if this script works because I don&apos;t know how to test it.

We would have to set up a post-commit hook on a local test repository.  possibly as part of scm_unittest, or more likely as part of some new module which was this command.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223668</commentid>
    <comment_count>13</comment_count>
    <who name="William Siegrist">wsiegrist</who>
    <bug_when>2010-05-10 19:04:05 -0700</bug_when>
    <thetext>This seems like a lot of abstraction for an svn hook. And we don&apos;t have a working copy on the server, so this should end up using svnlook instead. I&apos;ll work on an alternate approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223681</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-10 19:18:37 -0700</bug_when>
    <thetext>Really all one needs is:

1.  The location and format of the svn auth file (probably grep is all one really needs)
2.  A regexp with which to parse date lines.

The trouble is, if the ChangeLog ever doens&apos;t start at the top of the file, then you coudl pull the wrong author for the commit!

We may need a pre-commit hook for SVN to prevent such bad changelog edits before we could really use something like this dependably.   See bug 28291.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223787</commentid>
    <comment_count>15</comment_count>
      <attachid>55621</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-10 23:54:39 -0700</bug_when>
    <thetext>Comment on attachment 55621
Patch

wms is going to work up an alternate approach he says.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243100</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-25 11:35:05 -0700</bug_when>
    <thetext>wms is currently testing a solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326681</commentid>
    <comment_count>17</comment_count>
    <who name="William Siegrist">wsiegrist</who>
    <bug_when>2010-12-24 11:03:55 -0800</bug_when>
    <thetext>I&apos;m pretty sure this has been fixed for a while.

Eric, was there any other changes you wanted under this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326706</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-24 11:55:50 -0800</bug_when>
    <thetext>Nope.  Thanks.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55619</attachid>
            <date>2010-05-10 16:31:17 -0700</date>
            <delta_ts>2010-05-10 16:35:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38870-20100510163116.patch</filename>
            <type>text/plain</type>
            <size>5178</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU5MTAyKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDUtMTAgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBzdm4ud2Via2l0Lm9yZyBuZWVkcyBhIHBvc3QtY29tbWl0IGhvb2sgdG8gZml4IHN2
bjphdXRob3IgZnJvbSBjb21taXQtcXVldWUgcGF0Y2hlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4NzAKKworICAgICAgICBUaGUgcG9zdC1jb21t
aXQgaG9vayBjYW4gY2FsbCBzZXQtc3ZuLWF1dGhvciB0byBzZXQgdGhlIHN2biBhdXRob3IKKyAg
ICAgICAgcHJvcGVydHkgYmFzZWQgb24gdGhlIENoYW5nZUxvZy4KKworICAgICAgICAqIFNjcmlw
dHMvc2V0LXN2bi1hdXRob3I6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
b25maWcvY29tbWl0dGVycy5weToKKwogMjAxMC0wNS0xMCAgS2VudCBUYW11cmEgIDx0a2VudEBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdl
YktpdFRvb2xzL1NjcmlwdHMvc2V0LXN2bi1hdXRob3IKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9v
bHMvU2NyaXB0cy9zZXQtc3ZuLWF1dGhvcgkocmV2aXNpb24gMCkKKysrIFdlYktpdFRvb2xzL1Nj
cmlwdHMvc2V0LXN2bi1hdXRob3IJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjIgQEAKKyMhL3Vz
ci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0Ogor
IworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBvcworaW1wb3J0IHN5
cworCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5hcGkgaW1wb3J0IENoZWNrb3V0Citm
cm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20gaW1wb3J0IGRldGVjdF9zY21fc3lzdGVt
Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJv
cgorCisKK2RlZiBtYWluKGFyZ3MpOgorICAgIGlmIGxlbihhcmdzKSA8IDM6CisgICAgICAgIHBy
aW50ICJVc2FnZTogJXMgUkVQT1NfUEFUSCBSRVYiICUgYXJnc1swXQorICAgICAgICByZXR1cm4K
KyAgICByZXBvc19wYXRoID0gYXJnc1sxXQorICAgIHJldiA9IGFyZ3NbMl0KKworICAgIGFic19y
ZXBvc19wYXRoID0gb3MucGF0aC5hYnNwYXRoKHJlcG9zX3BhdGgpCisgICAgc2NtID0gZGV0ZWN0
X3NjbV9zeXN0ZW0oYWJzX3JlcG9zX3BhdGgpCisgICAgaWYgc2NtLnN1cHBvcnRzX2xvY2FsX2Nv
bW1pdHMoKToKKyAgICAgICAgcHJpbnQgIlRoaXMgc2NyaXB0IG11c3QgYmUgcnVuIG9uIGFuIFNW
TiB3b3JraW5nIGNvcHkuIgorICAgICAgICByZXR1cm4KKyAgICBhdXRob3IgPSBDaGVja291dChz
Y20pLmNvbW1pdF9pbmZvX2Zvcl9yZXZpc2lvbihyZXYpLmF1dGhvcigpCisgICAgaWYgbm90IGF1
dGhvcjoKKyAgICAgICAgcHJpbnQgIlVuYWJsZSB0byBkZXRlcm1pbmUgcGF0Y2ggYXV0aG9yLiIK
KyAgICAgICAgcmV0dXJuCisgICAgdHJ5OgorICAgICAgICBzY20uc2V0X2F1dGhvcihyZXYsIGF1
dGhvci5zdm5fZW1haWwoKSkKKyAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6CisgICAgICAgIHBy
aW50ICJVbmFibGUgdG8gc2V0IHN2bjphdXRob3IgdG8gJXMuIiAlIGF1dGhvcgorICAgICAgICBy
ZXR1cm4KKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIG1haW4oYXJncz1zeXMu
YXJndikKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdFRvb2xzL1NjcmlwdHMvc2V0LXN2bi1h
dXRob3IKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRleDogV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS5w
eQkocmV2aXNpb24gNTkwNTcpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9zY20ucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1MiwxMSArMjUyLDE0IEBAIGNs
YXNzIFNWTihTQ00pOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjd2QpOgogICAgICAgICBTQ00u
X19pbml0X18oc2VsZiwgY3dkKQogICAgICAgICBzZWxmLmNhY2hlZF92ZXJzaW9uID0gTm9uZQot
ICAgIAorCisgICAgZGVmIHNldF9hdXRob3Ioc2VsZiwgc3ZuX3JldmlzaW9uLCBhdXRob3JfZW1h
aWwpOgorICAgICAgICBydW5fY29tbWFuZChbInN2biIsICJwcm9wc2V0IiwgIi0tcmV2cHJvcCIs
ICItciIsIHN2bl9yZXZpc2lvbiwgInN2bjphdXRob3IiLCBhdXRob3JfZW1haWxdKQorCiAgICAg
QHN0YXRpY21ldGhvZAogICAgIGRlZiBpbl93b3JraW5nX2RpcmVjdG9yeShwYXRoKToKICAgICAg
ICAgcmV0dXJuIG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2luKHBhdGgsICcuc3ZuJykpCi0gICAg
CisKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgZmluZF91dWlkKGNscywgcGF0aCk6CiAgICAg
ICAgIGlmIG5vdCBjbHMuaW5fd29ya2luZ19kaXJlY3RvcnkocGF0aCk6CkluZGV4OiBXZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVycy5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0
dGVycy5weQkocmV2aXNpb24gNTkwNTcpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9jb25maWcvY29tbWl0dGVycy5weQkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUs
MTIgQEAgY2xhc3MgQ29tbWl0dGVyOgogICAgICAgICAjIHdoaWNoIG1pZ2h0IG5vdCBiZSByaWdo
dC4KICAgICAgICAgcmV0dXJuIHNlbGYuZW1haWxzWzBdCiAKKyAgICBkZWYgc3ZuX2VtYWlsKHNl
bGYpOgorICAgICAgICAjIEZJWE1FOiBXZSBuZWVkIGEgYmV0dGVyIHdheSB0byBhc3NpZ24gYnVn
emlsbGFfZW1haWwgYW5kIHN2bl9lbWFpbC4KKyAgICAgICAgaWYgbGVuKHNlbGYuZW1haWxzKSA9
PSAxOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZW1haWxzWzBdCisgICAgICAgIHJldHVybiBz
ZWxmLmVtYWlsc1sxXQorCiAgICAgZGVmIF9fc3RyX18oc2VsZik6CiAgICAgICAgIHJldHVybiAn
IiVzIiA8JXM+JyAlIChzZWxmLmZ1bGxfbmFtZSwgc2VsZi5lbWFpbHNbMF0pCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55621</attachid>
            <date>2010-05-10 16:35:24 -0700</date>
            <delta_ts>2010-06-11 12:08:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38870-20100510163523.patch</filename>
            <type>text/plain</type>
            <size>5124</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDU5MTAyKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDUtMTAgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBzdm4ud2Via2l0Lm9yZyBuZWVkcyBhIHBvc3QtY29tbWl0IGhvb2sgdG8gZml4IHN2
bjphdXRob3IgZnJvbSBjb21taXQtcXVldWUgcGF0Y2hlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4NzAKKworICAgICAgICBUaGUgcG9zdC1jb21t
aXQgaG9vayBjYW4gY2FsbCBzZXQtc3ZuLWF1dGhvciB0byBzZXQgdGhlIHN2biBhdXRob3IKKyAg
ICAgICAgcHJvcGVydHkgYmFzZWQgb24gdGhlIENoYW5nZUxvZy4KKworICAgICAgICAqIFNjcmlw
dHMvc2V0LXN2bi1hdXRob3I6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
b25maWcvY29tbWl0dGVycy5weToKKwogMjAxMC0wNS0xMCAgS2VudCBUYW11cmEgIDx0a2VudEBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdl
YktpdFRvb2xzL1NjcmlwdHMvc2V0LXN2bi1hdXRob3IKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9v
bHMvU2NyaXB0cy9zZXQtc3ZuLWF1dGhvcgkocmV2aXNpb24gMCkKKysrIFdlYktpdFRvb2xzL1Nj
cmlwdHMvc2V0LXN2bi1hdXRob3IJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjEgQEAKKyMhL3Vz
ci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0Ogor
IworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBvcworaW1wb3J0IHN5
cworCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5hcGkgaW1wb3J0IENoZWNrb3V0Citm
cm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20gaW1wb3J0IGRldGVjdF9zY21fc3lzdGVt
Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJv
cgorCisKK2RlZiBtYWluKGFyZ3MpOgorICAgIGlmIGxlbihhcmdzKSA8IDM6CisgICAgICAgIHBy
aW50ICJVc2FnZTogJXMgUkVQT1NfUEFUSCBSRVYiICUgYXJnc1swXQorICAgICAgICByZXR1cm4K
KyAgICByZXBvc19wYXRoID0gYXJnc1sxXQorICAgIHJldiA9IGFyZ3NbMl0KKworICAgIHNjbSA9
IGRldGVjdF9zY21fc3lzdGVtKHJlcG9zX3BhdGgpCisgICAgaWYgc2NtLnN1cHBvcnRzX2xvY2Fs
X2NvbW1pdHMoKToKKyAgICAgICAgcHJpbnQgIlRoaXMgc2NyaXB0IG11c3QgYmUgcnVuIG9uIGFu
IFNWTiB3b3JraW5nIGNvcHkuIgorICAgICAgICByZXR1cm4KKyAgICBhdXRob3IgPSBDaGVja291
dChzY20pLmNvbW1pdF9pbmZvX2Zvcl9yZXZpc2lvbihyZXYpLmF1dGhvcigpCisgICAgaWYgbm90
IGF1dGhvcjoKKyAgICAgICAgcHJpbnQgIlVuYWJsZSB0byBkZXRlcm1pbmUgcGF0Y2ggYXV0aG9y
LiIKKyAgICAgICAgcmV0dXJuCisgICAgdHJ5OgorICAgICAgICBzY20uc2V0X2F1dGhvcihyZXYs
IGF1dGhvci5zdm5fZW1haWwoKSkKKyAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6CisgICAgICAg
IHByaW50ICJVbmFibGUgdG8gc2V0IHN2bjphdXRob3IgdG8gJXMuIiAlIGF1dGhvcgorICAgICAg
ICByZXR1cm4KKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIG1haW4oYXJncz1z
eXMuYXJndikKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdFRvb2xzL1NjcmlwdHMvc2V0LXN2
bi1hdXRob3IKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRleDog
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3Nj
bS5weQkocmV2aXNpb24gNTkwNTcpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jaGVja291dC9zY20ucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1MiwxMSArMjUyLDE0IEBA
IGNsYXNzIFNWTihTQ00pOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjd2QpOgogICAgICAgICBT
Q00uX19pbml0X18oc2VsZiwgY3dkKQogICAgICAgICBzZWxmLmNhY2hlZF92ZXJzaW9uID0gTm9u
ZQotICAgIAorCisgICAgZGVmIHNldF9hdXRob3Ioc2VsZiwgc3ZuX3JldmlzaW9uLCBhdXRob3Jf
ZW1haWwpOgorICAgICAgICBydW5fY29tbWFuZChbInN2biIsICJwcm9wc2V0IiwgIi0tcmV2cHJv
cCIsICItciIsIHN2bl9yZXZpc2lvbiwgInN2bjphdXRob3IiLCBhdXRob3JfZW1haWxdKQorCiAg
ICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBpbl93b3JraW5nX2RpcmVjdG9yeShwYXRoKToKICAg
ICAgICAgcmV0dXJuIG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2luKHBhdGgsICcuc3ZuJykpCi0g
ICAgCisKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgZmluZF91dWlkKGNscywgcGF0aCk6CiAg
ICAgICAgIGlmIG5vdCBjbHMuaW5fd29ya2luZ19kaXJlY3RvcnkocGF0aCk6CkluZGV4OiBXZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVycy5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29t
bWl0dGVycy5weQkocmV2aXNpb24gNTkwNTcpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVycy5weQkod29ya2luZyBjb3B5KQpAQCAtNDUsNiAr
NDUsMTIgQEAgY2xhc3MgQ29tbWl0dGVyOgogICAgICAgICAjIHdoaWNoIG1pZ2h0IG5vdCBiZSBy
aWdodC4KICAgICAgICAgcmV0dXJuIHNlbGYuZW1haWxzWzBdCiAKKyAgICBkZWYgc3ZuX2VtYWls
KHNlbGYpOgorICAgICAgICAjIEZJWE1FOiBXZSBuZWVkIGEgYmV0dGVyIHdheSB0byBhc3NpZ24g
YnVnemlsbGFfZW1haWwgYW5kIHN2bl9lbWFpbC4KKyAgICAgICAgaWYgbGVuKHNlbGYuZW1haWxz
KSA9PSAxOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZW1haWxzWzBdCisgICAgICAgIHJldHVy
biBzZWxmLmVtYWlsc1sxXQorCiAgICAgZGVmIF9fc3RyX18oc2VsZik6CiAgICAgICAgIHJldHVy
biAnIiVzIiA8JXM+JyAlIChzZWxmLmZ1bGxfbmFtZSwgc2VsZi5lbWFpbHNbMF0pCiAK
</data>
<flag name="review"
          id="39854"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>