public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "gaoliming" <gaoliming@byosoft.com.cn>
To: "'Feng, Bob C'" <bob.c.feng@intel.com>, <devel@edk2.groups.io>
Cc: "'Chen, Christine'" <yuwei.chen@intel.com>,
	"'Liang, MingyueX'" <mingyuex.liang@intel.com>
Subject: 回复: [edk2-devel] 回复: [Patch 1/1] BaseTools: Fix the issue caused by tostring() removal on Py39
Date: Mon, 4 Jan 2021 16:31:30 +0800	[thread overview]
Message-ID: <006301d6e274$007e01b0$017a0510$@byosoft.com.cn> (raw)
In-Reply-To: <DM6PR11MB40734FA120431C0FFF9D6CE8C9D20@DM6PR11MB4073.namprd11.prod.outlook.com>

Original SaveFileOnChange() saves the file only when the file is updated. Can this patch keep the same behavior?

Thanks
Liming
> -----邮件原件-----
> 发件人: Feng, Bob C <bob.c.feng@intel.com>
> 发送时间: 2021年1月4日 10:27
> 收件人: devel@edk2.groups.io; gaoliming@byosoft.com.cn
> 抄送: Chen, Christine <yuwei.chen@intel.com>; Liang, MingyueX
> <mingyuex.liang@intel.com>
> 主题: RE: [edk2-devel] 回复: [Patch 1/1] BaseTools: Fix the issue caused by
> tostring() removal on Py39
> 
> Yes. it will always update .ui file.
> 
> Thanks,
> Bob
> 
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of gaoliming
> Sent: Monday, January 4, 2021 8:51 AM
> To: Feng, Bob C <bob.c.feng@intel.com>; devel@edk2.groups.io
> Cc: Chen, Christine <yuwei.chen@intel.com>; Liang, MingyueX
> <mingyuex.liang@intel.com>
> Subject: [edk2-devel] 回复: [Patch 1/1] BaseTools: Fix the issue caused by
> tostring() removal on Py39
> 
> Bob:
> 
> > -----邮件原件-----
> > 发件人: Bob Feng <bob.c.feng@intel.com>
> > 发送时间: 2020年12月29日 20:15
> > 收件人: devel@edk2.groups.io
> > 抄送: Liming Gao <gaoliming@byosoft.com.cn>; Yuwei Chen
> > <yuwei.chen@intel.com>; Mingyue Liang <mingyuex.liang@intel.com>
> > 主题: [Patch 1/1] BaseTools: Fix the issue caused by tostring() removal
> > on
> > Py39
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3136
> >
> > Python 3.9 remove the array.array.tostring and
> > array.array.fromstring() function. This patch is to use other method
> > to replace tostring() and
> > fromstring()
> >
> > Signed-off-by: Bob Feng <bob.c.feng@intel.com>
> >
> > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > Cc: Yuwei Chen <yuwei.chen@intel.com>
> > Cc: Mingyue Liang <mingyuex.liang@intel.com>
> > ---
> >  .../Python/GenFds/GenFdsGlobalVariable.py     | 23
> > ++++++++++++++++---
> >  1 file changed, 20 insertions(+), 3 deletions(-)
> >
> > diff --git a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
> > b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
> > index dc1727c4666d..3019ec63c3bb 100644
> > --- a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
> > +++ b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
> > @@ -25,14 +25,15 @@ from Common.Misc import SaveFileOnChange
> >
> >  from Common.TargetTxtClassObject import TargetTxtDict  from
> > Common.ToolDefClassObject import ToolDefDict  from
> AutoGen.BuildEngine
> > import ToolBuildRule  import Common.DataType as DataType -from
> > Common.Misc import PathClass
> > +from Common.Misc import PathClass,CreateDirectory
> >  from Common.LongFilePathSupport import OpenLongFilePath as open
> from
> > Common.MultipleWorkspace import MultipleWorkspace as mws  import
> > Common.GlobalData as GlobalData
> > +from Common.BuildToolError import *
> >
> >  ## Global variables
> >  #
> >  #
> >  class GenFdsGlobalVariable:
> > @@ -461,16 +462,32 @@ class GenFdsGlobalVariable:
> >                  Cmd += ("-o", Output)
> >                  if ' '.join(Cmd).strip() not in
> > GenFdsGlobalVariable.SecCmdList:
> >                      GenFdsGlobalVariable.SecCmdList.append('
> > '.join(Cmd).strip())
> >              else:
> >                  SectionData = array('B', [0, 0, 0, 0])
> > -                SectionData.fromstring(Ui.encode("utf_16_le"))
> > +
> > SectionData.fromlist(array('B',Ui.encode('utf-16-le')).tolist())
> >                  SectionData.append(0)
> >                  SectionData.append(0)
> >                  Len = len(SectionData)
> >
> > GenFdsGlobalVariable.SectionHeader.pack_into(SectionData, 0, Len &
> > 0xff, (Len >> 8) & 0xff, (Len >> 16) & 0xff, 0x15)
> > -                SaveFileOnChange(Output, SectionData.tostring())
> > +
> > +
> > +                DirName = os.path.dirname(Output)
> > +                if not CreateDirectory(DirName):
> > +                    EdkLogger.error(None, FILE_CREATE_FAILURE,
> > "Could not create directory %s" % DirName)
> > +                else:
> > +                    if DirName == '':
> > +                        DirName = os.getcwd()
> > +                    if not os.access(DirName, os.W_OK):
> > +                        EdkLogger.error(None,
> PERMISSION_FAILURE,
> > "Do not have write permission on directory %s" % DirName)
> > +
> > +                try:
> > +                    with open(Output, "wb") as Fd:
> > +                        SectionData.tofile(Fd)
> > +                        Fd.flush()
> > +                except IOError as X:
> > +                    EdkLogger.error(None, FILE_CREATE_FAILURE,
> > ExtraData='IOError %s' % X)
> 
> Does this change always update the file time stamp even if the file content is
> not changed?
> 
> Thanks
> Liming
> >
> >          elif Ver:
> >              Cmd += ("-n", Ver)
> >              if BuildNumber:
> >                  Cmd += ("-j", BuildNumber)
> > --
> > 2.29.1.windows.1
> 
> 
> 
> 
> 
> 
> 




  reply	other threads:[~2021-01-04  8:31 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-29 12:14 [Patch 1/1] BaseTools: Fix the issue caused by tostring() removal on Py39 Bob Feng
2021-01-04  0:50 ` 回复: " gaoliming
2021-01-04  2:27   ` [edk2-devel] " Bob Feng
2021-01-04  8:31     ` gaoliming [this message]
2021-01-05  9:09       ` Bob Feng
2021-01-05 13:27         ` 回复: " gaoliming
2021-01-06  0:58           ` Bob Feng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='006301d6e274$007e01b0$017a0510$@byosoft.com.cn' \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox