From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from zrleap.intel-email.com (zrleap.intel-email.com [114.80.218.36]) by mx.groups.io with SMTP id smtpd.web11.10854.1689556062281313614 for ; Sun, 16 Jul 2023 18:07:42 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@byosoft.com.cn header.s=cloud-union header.b=UFX1YMkw; spf=pass (domain: byosoft.com.cn, ip: 114.80.218.36, mailfrom: gaoliming@byosoft.com.cn) Received: from zrleap.intel-email.com (localhost [127.0.0.1]) by zrleap.intel-email.com (Postfix) with ESMTP id 40867A32E004 for ; Mon, 17 Jul 2023 09:07:40 +0800 (CST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=byosoft.com.cn; s=cloud-union; t=1689556060; bh=CJkABDPTsxkFM7/FcJ/rTVUW7YEYl2vHxZ1L4zAQ7vY=; h=From:To:Cc:References:In-Reply-To:Subject:Date; b=UFX1YMkwCRpsag/w5lnPPlU2ANQN5YjZFqTfjpexn3he16MdaniWE/cP+azatYEaL b4/vXd6SjWAWN9+TdR5zWQ/zxU8DGgCIP5clJyPHlxmBxzzhJ54ekNQT1U65s/o9zd ITk07CZo8MaRlm1cuX4MvG0kGQg+tq4UENLZquWI= Received: from localhost (localhost [127.0.0.1]) by zrleap.intel-email.com (Postfix) with ESMTP id 23790A32E018 for ; Mon, 17 Jul 2023 09:07:40 +0800 (CST) Authentication-Results: zrleap.intel-email.com; none Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by zrleap.intel-email.com (Postfix) with SMTP id CCBDEA32E073 for ; Mon, 17 Jul 2023 09:07:36 +0800 (CST) Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Mon, 17 Jul 2023 09:07:23 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: , , "'Kinney, Michael D'" Cc: "'Rebecca Cran'" , "'Feng, Bob C'" , "'Chen, Christine'" References: <20230627162722.1030-1-joey.vagedes@gmail.com> <20230627162722.1030-2-joey.vagedes@gmail.com> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYxIDEvMV0gQmFzZVRvb2xzOiBCaW5Ub1BjZDogUmVzb2x2ZSB4ZHJsaWIgZGVwcmVjYXRpb24=?= Date: Mon, 17 Jul 2023 09:07:32 +0800 Message-ID: <002901d9b84b$10d0fd10$3272f730$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQFkVg3WzMSyzHqlThL/gDkNZl9FPAHwPf7MAuiF8qwDStf2sbBmzR8Q Sender: "gaoliming" Content-Type: multipart/alternative; boundary="----=_NextPart_000_002A_01D9B88E.1EF54E80" Content-Language: zh-cn ------=_NextPart_000_002A_01D9B88E.1EF54E80 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Reviewed-by: Liming Gao =20 =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io = =E4=BB=A3=E8=A1=A8 Joey Vagedes via groups.io =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2023=E5=B9=B47=E6=9C=8813=E6=97=A5 23= :27 =E6=94=B6=E4=BB=B6=E4=BA=BA: Kinney, Michael D =E6=8A=84=E9=80=81: devel@edk2.groups.io; Rebecca Cran ;= Gao, Liming ; Feng, Bob C = ; Chen, Christine =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [PATCH v1 1/1] BaseTools: BinToPcd: Re= solve xdrlib deprecation =20 Thank you for the review Michael. @Rebecca Cran = , @Liming Gao have you had time to take = a look at this? It is a fairly simple change, following the same logic as x= drlib with a few modifications to use some newer python functionality. =20 Thanks, Joey =20 On Tue, Jun 27, 2023 at 10:21=E2=80=AFAM Kinney, Michael D > wrote: Thank you for fixing this. Reviewed-by: Michael D Kinney > > -----Original Message----- > From: Joey Vagedes > > Sent: Tuesday, June 27, 2023 9:27 AM > To: devel@edk2.groups.io =20 > Cc: Rebecca Cran >; Gao, Li= ming > >; Feng, Bob = C >; Chen, > Christine >; Kinney, = Michael D > > > Subject: [PATCH v1 1/1] BaseTools: BinToPcd: Resolve xdrlib deprecation >=20 > Removes the dependency on xdrlib and replaces it with custom logic to > pack a per the xdr requirements. Necessary as xdrlib is being deprecated > in python 3.13. >=20 > Cc: Rebecca Cran > > Cc: Liming Gao > > Cc: Bob Feng > > Cc: Yuwei Chen > > Cc: Michael D Kinney > > Signed-off-by: Joey Vagedes > > --- > BaseTools/Scripts/BinToPcd.py | 19 +++++++++++++++---- > 1 file changed, 15 insertions(+), 4 deletions(-) >=20 > diff --git a/BaseTools/Scripts/BinToPcd.py b/BaseTools/Scripts/BinToPcd.p= y > index 3bc557b8412c..460c08b7f7cd 100644 > --- a/BaseTools/Scripts/BinToPcd.py > +++ b/BaseTools/Scripts/BinToPcd.py > @@ -14,6 +14,9 @@ import sys > import argparse >=20 > import re >=20 > import xdrlib >=20 > +import io >=20 > +import struct >=20 > +import math >=20 >=20 >=20 > # >=20 > # Globals for help information >=20 > @@ -46,16 +49,24 @@ if __name__ =3D=3D '__main__': > raise argparse.ArgumentTypeError (Message) >=20 > return Argument >=20 >=20 >=20 > + def XdrPackBuffer (buffer): >=20 > + packed_bytes =3D io.BytesIO() >=20 > + for unpacked_bytes in buffer: >=20 > + n =3D len(unpacked_bytes) >=20 > + packed_bytes.write(struct.pack('>L',n)) >=20 > + data =3D unpacked_bytes[:n] >=20 > + n =3D math.ceil(n/4)*4 >=20 > + data =3D data + (n - len(data)) * b'\0' >=20 > + packed_bytes.write(data) >=20 > + return packed_bytes.getvalue() >=20 > + >=20 > def ByteArray (Buffer, Xdr =3D False): >=20 > if Xdr: >=20 > # >=20 > # If Xdr flag is set then encode data using the Variable- > Length Opaque >=20 > # Data format of RFC 4506 External Data Representation > Standard (XDR). >=20 > # >=20 > - XdrEncoder =3D xdrlib.Packer () >=20 > - for Item in Buffer: >=20 > - XdrEncoder.pack_bytes (Item) >=20 > - Buffer =3D bytearray (XdrEncoder.get_buffer ()) >=20 > + Buffer =3D bytearray (XdrPackBuffer (Buffer)) >=20 > else: >=20 > # >=20 > # If Xdr flag is not set, then concatenate all the data >=20 > -- > 2.41.0.windows.1 ------=_NextPart_000_002A_01D9B88E.1EF54E80 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable

Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>

 

=E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io <devel@edk2.groups.io> =E4= =BB=A3=E8=A1=A8 Joey Vagedes via groups.io
=E5=8F=91=E9=80= =81=E6=97=B6=E9=97=B4: 2023=E5=B9=B47
=E6=9C=8813=E6=97=A5 23:27
=E6=94=B6=E4=BB=B6=E4=BA=BA: Kinney, Michael D <michael.d.kinney@= intel.com>
=E6=8A=84=E9=80=81: devel@edk2.groups.io; Rebecca Cran <rebecca@bsdio.c= om>; Gao, Liming <gaoliming@byosoft.com.cn>; Feng, Bob C <bob.c= .feng@intel.com>; Chen, Christine <yuwei.chen@intel.com>
=E4=B8=BB=E9=A2=98: Re= : [edk2-devel] [PATCH v1 1/1] BaseTools: BinToPcd: Resolve xdrlib deprecati= on

 

Thank you for the review Michael. @Rebecca Cran@Liming Gao have you had time to take a look at this? It is a f= airly simple change, following the same logic as xdrlib with a few modifica= tions to use some newer python functionality.

 

Thanks,

Joey

 

On Tue, Jun 27, 2023 at= 10:21=E2=80=AFAM Kinney, Michael D <michael.d.kinney@intel.com> wrote:=

Thank you for fixing this.

Reviewed-by: Michael D Kinney <michael.d.kinney@= intel.com>

> -----Original Message-----
> From: Joey= Vagedes <jo= ey.vagedes@gmail.com>
> Sent: Tuesday, June 27, 2023 9:27 AM> To: devel@= edk2.groups.io
> Cc: Rebecca Cran <rebecca@bsdio.com>; Gao, Liming
> = <gaoliming= @byosoft.com.cn>; Feng, Bob C <bob.c.feng@intel.com>; Chen,
> Christi= ne <yuwei.chen= @intel.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>> Subject: [PATCH v1 1/1] BaseTools: BinToPcd: Resolve xdrlib deprecat= ion
>
> Removes the dependency on xdrlib and replaces it with = custom logic to
> pack a per the xdr requirements. Necessary as xdrli= b is being deprecated
> in python 3.13.
>
> Cc: Rebecca = Cran <rebecca@bsd= io.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: B= ob Feng <bob.c= .feng@intel.com>
> Cc: Yuwei Chen <yuwei.chen@intel.com>
> Cc: = Michael D Kinney <michael.d.kinney@intel.com>
> Signed-off-by: Joey = Vagedes <joey= vagedes@gmail.com>
> ---
>  BaseTools/Scripts/BinTo= Pcd.py | 19 +++++++++++++++----
>  1 file changed, 15 insertions= (+), 4 deletions(-)
>
> diff --git a/BaseTools/Scripts/BinToPc= d.py b/BaseTools/Scripts/BinToPcd.py
> index 3bc557b8412c..460c08b7f7= cd 100644
> --- a/BaseTools/Scripts/BinToPcd.py
> +++ b/BaseToo= ls/Scripts/BinToPcd.py
> @@ -14,6 +14,9 @@ import sys
>  i= mport argparse
>
>  import re
>
>  impo= rt xdrlib
>
> +import io
>
> +import struct
&g= t;
> +import math
>
>
>
>  #
>=
>  # Globals for help information
>
> @@ -46,16 += 49,24 @@ if __name__ =3D=3D '__main__':
>        =       raise argparse.ArgumentTypeError (Message)
> >          return Argument
>
> >
> +    def XdrPackBuffer (buffer):
>
>= +        packed_bytes =3D io.BytesIO()
>
>= ; +        for unpacked_bytes in buffer:
>
&g= t; +            n =3D len(unpacked_bytes)
= >
> +            packed_bytes.write= (struct.pack('>L',n))
>
> +        &nbs= p;   data =3D unpacked_bytes[:n]
>
> +     = ;       n =3D math.ceil(n/4)*4
>
> +  &nbs= p;         data =3D data + (n - len(data)) * b'\0'
&= gt;
> +            packed_bytes.write(= data)
>
> +        return packed_bytes.get= value()
>
> +
>
>      def ByteArr= ay (Buffer, Xdr =3D False):
>
>        &nb= sp; if Xdr:
>
>             = ; #
>
>              # If X= dr flag is set then encode data using the Variable-
> Length Opaque>
>              # Data form= at of RFC 4506 External Data Representation
> Standard (XDR).
>=
>              #
>
>= ; -            XdrEncoder =3D xdrlib.Packer (= )
>
> -            for Item in B= uffer:
>
> -              &= nbsp; XdrEncoder.pack_bytes (Item)
>
> -      &= nbsp;     Buffer =3D bytearray (XdrEncoder.get_buffer ())
>=
> +            Buffer =3D bytearray (= XdrPackBuffer (Buffer))
>
>          = else:
>
>              #>
>              # If Xdr fla= g is not set, then concatenate all the data
>
> --
> 2.4= 1.0.windows.1

------=_NextPart_000_002A_01D9B88E.1EF54E80--