<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:等线;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"\@等线";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:12.0pt;
        font-family:宋体;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:等线;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:等线;
        mso-ligatures:none;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=ZH-CN link=blue vlink=purple style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'>Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'><o:p> </o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:等线'>发件人<span lang=EN-US>:</span></span></b><span lang=EN-US style='font-size:11.0pt;font-family:等线'> devel@edk2.groups.io <devel@edk2.groups.io> </span><b><span style='font-size:11.0pt;font-family:等线'>代表 </span></b><span lang=EN-US style='font-size:11.0pt;font-family:等线'>Joey Vagedes via groups.io<br></span><b><span style='font-size:11.0pt;font-family:等线'>发送时间<span lang=EN-US>:</span></span></b><span lang=EN-US style='font-size:11.0pt;font-family:等线'> 2023</span><span style='font-size:11.0pt;font-family:等线'>年<span lang=EN-US>7</span>月<span lang=EN-US>13</span>日<span lang=EN-US> 23:27<br></span><b>收件人<span lang=EN-US>:</span></b><span lang=EN-US> Kinney, Michael D <michael.d.kinney@intel.com><br></span><b>抄送<span lang=EN-US>:</span></b><span lang=EN-US> devel@edk2.groups.io; Rebecca Cran <rebecca@bsdio.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Feng, Bob C <bob.c.feng@intel.com>; Chen, Christine <yuwei.chen@intel.com><br></span><b>主题<span lang=EN-US>:</span></b><span lang=EN-US> Re: [edk2-devel] [PATCH v1 1/1] BaseTools: BinToPcd: Resolve xdrlib deprecation<o:p></o:p></span></span></p></div></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><p class=MsoNormal><span lang=EN-US>Thank you for the review Michael. <a href="mailto:rebecca@bsdio.com">@Rebecca Cran</a>, <a href="mailto:gaoliming@byosoft.com.cn">@Liming Gao</a> have you had time to take a look at this? It is a fairly simple change, following the same logic as xdrlib with a few modifications to use some newer python functionality.<o:p></o:p></span></p><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US>Thanks,<o:p></o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US>Joey<o:p></o:p></span></p></div></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><div><p class=MsoNormal><span lang=EN-US>On Tue, Jun 27, 2023 at 10:21</span><span lang=EN-US style='font-family:"Times New Roman",serif'> </span><span lang=EN-US>AM Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com">michael.d.kinney@intel.com</a>> wrote:<o:p></o:p></span></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><p class=MsoNormal style='margin-bottom:12.0pt'><span lang=EN-US>Thank you for fixing this.<br><br>Reviewed-by: Michael D Kinney <<a href="mailto:michael.d.kinney@intel.com" target="_blank">michael.d.kinney@intel.com</a>><br><br>> -----Original Message-----<br>> From: Joey Vagedes <<a href="mailto:joey.vagedes@gmail.com" target="_blank">joey.vagedes@gmail.com</a>><br>> Sent: Tuesday, June 27, 2023 9:27 AM<br>> To: <a href="mailto:devel@edk2.groups.io" target="_blank">devel@edk2.groups.io</a><br>> Cc: Rebecca Cran <<a href="mailto:rebecca@bsdio.com" target="_blank">rebecca@bsdio.com</a>>; Gao, Liming<br>> <<a href="mailto:gaoliming@byosoft.com.cn" target="_blank">gaoliming@byosoft.com.cn</a>>; Feng, Bob C <<a href="mailto:bob.c.feng@intel.com" target="_blank">bob.c.feng@intel.com</a>>; Chen,<br>> Christine <<a href="mailto:yuwei.chen@intel.com" target="_blank">yuwei.chen@intel.com</a>>; Kinney, Michael D<br>> <<a href="mailto:michael.d.kinney@intel.com" target="_blank">michael.d.kinney@intel.com</a>><br>> Subject: [PATCH v1 1/1] BaseTools: BinToPcd: Resolve xdrlib deprecation<br>> <br>> Removes the dependency on xdrlib and replaces it with custom logic to<br>> pack a per the xdr requirements. Necessary as xdrlib is being deprecated<br>> in python 3.13.<br>> <br>> Cc: Rebecca Cran <<a href="mailto:rebecca@bsdio.com" target="_blank">rebecca@bsdio.com</a>><br>> Cc: Liming Gao <<a href="mailto:gaoliming@byosoft.com.cn" target="_blank">gaoliming@byosoft.com.cn</a>><br>> Cc: Bob Feng <<a href="mailto:bob.c.feng@intel.com" target="_blank">bob.c.feng@intel.com</a>><br>> Cc: Yuwei Chen <<a href="mailto:yuwei.chen@intel.com" target="_blank">yuwei.chen@intel.com</a>><br>> Cc: Michael D Kinney <<a href="mailto:michael.d.kinney@intel.com" target="_blank">michael.d.kinney@intel.com</a>><br>> Signed-off-by: Joey Vagedes <<a href="mailto:joeyvagedes@gmail.com" target="_blank">joeyvagedes@gmail.com</a>><br>> ---<br>>  BaseTools/Scripts/BinToPcd.py | 19 +++++++++++++++----<br>>  1 file changed, 15 insertions(+), 4 deletions(-)<br>> <br>> diff --git a/BaseTools/Scripts/BinToPcd.py b/BaseTools/Scripts/BinToPcd.py<br>> index 3bc557b8412c..460c08b7f7cd 100644<br>> --- a/BaseTools/Scripts/BinToPcd.py<br>> +++ b/BaseTools/Scripts/BinToPcd.py<br>> @@ -14,6 +14,9 @@ import sys<br>>  import argparse<br>> <br>>  import re<br>> <br>>  import xdrlib<br>> <br>> +import io<br>> <br>> +import struct<br>> <br>> +import math<br>> <br>> <br>> <br>>  #<br>> <br>>  # Globals for help information<br>> <br>> @@ -46,16 +49,24 @@ if __name__ == '__main__':<br>>              raise argparse.ArgumentTypeError (Message)<br>> <br>>          return Argument<br>> <br>> <br>> <br>> +    def XdrPackBuffer (buffer):<br>> <br>> +        packed_bytes = io.BytesIO()<br>> <br>> +        for unpacked_bytes in buffer:<br>> <br>> +            n = len(unpacked_bytes)<br>> <br>> +            packed_bytes.write(struct.pack('>L',n))<br>> <br>> +            data = unpacked_bytes[:n]<br>> <br>> +            n = math.ceil(n/4)*4<br>> <br>> +            data = data + (n - len(data)) * b'\0'<br>> <br>> +            packed_bytes.write(data)<br>> <br>> +        return packed_bytes.getvalue()<br>> <br>> +<br>> <br>>      def ByteArray (Buffer, Xdr = False):<br>> <br>>          if Xdr:<br>> <br>>              #<br>> <br>>              # If Xdr flag is set then encode data using the Variable-<br>> Length Opaque<br>> <br>>              # Data format of RFC 4506 External Data Representation<br>> Standard (XDR).<br>> <br>>              #<br>> <br>> -            XdrEncoder = xdrlib.Packer ()<br>> <br>> -            for Item in Buffer:<br>> <br>> -                XdrEncoder.pack_bytes (Item)<br>> <br>> -            Buffer = bytearray (XdrEncoder.get_buffer ())<br>> <br>> +            Buffer = bytearray (XdrPackBuffer (Buffer))<br>> <br>>          else:<br>> <br>>              #<br>> <br>>              # If Xdr flag is not set, then concatenate all the data<br>> <br>> --<br>> 2.41.0.windows.1<o:p></o:p></span></p></blockquote></div><div><p class=MsoNormal></o:p></span></p></div></div></div></body></html>


<div width="1" style="color:white;clear:both">_._,_._,_</div>
<hr>


Groups.io Links:<p>


  
    You receive all messages sent to this group.
  
  


<p>
<a target="_blank" href="https://edk2.groups.io/g/devel/message/106951">View/Reply Online (#106951)</a> |


  

|

  <a target="_blank" href="https://groups.io/mt/100187059/1813853">Mute This Topic</a>


| <a href="https://edk2.groups.io/g/devel/post">New Topic</a>

<br>




<a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> |
<a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |

<a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>

 [edk2-devel-archive@redhat.com]<br>
<div width="1" style="color:white;clear:both">_._,_._,_</div>