* [Patch] BaseTools: Add python3-distutils Ubuntu package checking @ 2019-02-26 1:05 Feng, Bob C 2019-02-27 8:07 ` Ard Biesheuvel 0 siblings, 1 reply; 6+ messages in thread From: Feng, Bob C @ 2019-02-26 1:05 UTC (permalink / raw) To: edk2-devel; +Cc: Bob Feng, Liming Gao https://bugzilla.tianocore.org/show_bug.cgi?id=1509 Add python3-distutils Ubuntu package checking. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> --- BaseTools/Tests/RunTests.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/BaseTools/Tests/RunTests.py b/BaseTools/Tests/RunTests.py index 0dd65632d0..64778db981 100644 --- a/BaseTools/Tests/RunTests.py +++ b/BaseTools/Tests/RunTests.py @@ -17,10 +17,24 @@ # import os import sys import unittest +distutils_exist = True +try: + import distutils.util +except: + distutils_exist = False + +if not distutils_exist: + print(""" +python3-distutil packages is missing. Please install it with the following command: + +bash$ sudo apt-get install python3-distutil +""") + sys.exit(-1) + import TestTools def GetCTestSuite(): import CToolsTests return CToolsTests.TheTestSuite() -- 2.20.1.windows.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Patch] BaseTools: Add python3-distutils Ubuntu package checking 2019-02-26 1:05 [Patch] BaseTools: Add python3-distutils Ubuntu package checking Feng, Bob C @ 2019-02-27 8:07 ` Ard Biesheuvel 2019-02-27 8:26 ` Leif Lindholm 0 siblings, 1 reply; 6+ messages in thread From: Ard Biesheuvel @ 2019-02-27 8:07 UTC (permalink / raw) To: Feng, Bob C; +Cc: edk2-devel@lists.01.org, Liming Gao On Tue, 26 Feb 2019 at 02:05, Feng, Bob C <bob.c.feng@intel.com> wrote: > > https://bugzilla.tianocore.org/show_bug.cgi?id=1509 > > Add python3-distutils Ubuntu package checking. > Hi Bob, This assumes that all Linux systems are Ubuntu based, which is not true. The apt tool is specific to Debian/Ubuntu, Fedora/Redhat and Suse all use something else. In general, I don't think we should validate the Python environment to this extent, since we cannot fix the problem for the user anyway, only flag it, and since python explodes rather loudly in this case, I think we should be able to leave it up to developers that are savvy enough to build EDK2 to also find the python distutils package for their platform. Note that that doesn't mean we shouldn't document this, and not just for Ubuntu. But I think putting it in the script is overkill. > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Bob Feng <bob.c.feng@intel.com> > Cc: Liming Gao <liming.gao@intel.com> > --- > BaseTools/Tests/RunTests.py | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/BaseTools/Tests/RunTests.py b/BaseTools/Tests/RunTests.py > index 0dd65632d0..64778db981 100644 > --- a/BaseTools/Tests/RunTests.py > +++ b/BaseTools/Tests/RunTests.py > @@ -17,10 +17,24 @@ > # > import os > import sys > import unittest > > +distutils_exist = True > +try: > + import distutils.util > +except: > + distutils_exist = False > + > +if not distutils_exist: > + print(""" > +python3-distutil packages is missing. Please install it with the following command: > + > +bash$ sudo apt-get install python3-distutil > +""") > + sys.exit(-1) > + > import TestTools > > def GetCTestSuite(): > import CToolsTests > return CToolsTests.TheTestSuite() > -- > 2.20.1.windows.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Patch] BaseTools: Add python3-distutils Ubuntu package checking 2019-02-27 8:07 ` Ard Biesheuvel @ 2019-02-27 8:26 ` Leif Lindholm 2019-02-27 8:52 ` Feng, Bob C 0 siblings, 1 reply; 6+ messages in thread From: Leif Lindholm @ 2019-02-27 8:26 UTC (permalink / raw) To: Feng, Bob C; +Cc: Ard Biesheuvel, edk2-devel@lists.01.org, Liming Gao On Wed, Feb 27, 2019 at 09:07:49AM +0100, Ard Biesheuvel wrote: > On Tue, 26 Feb 2019 at 02:05, Feng, Bob C <bob.c.feng@intel.com> wrote: > > > > https://bugzilla.tianocore.org/show_bug.cgi?id=1509 > > > > Add python3-distutils Ubuntu package checking. > > > > Hi Bob, > > This assumes that all Linux systems are Ubuntu based, which is not > true. The apt tool is specific to Debian/Ubuntu, Fedora/Redhat and > Suse all use something else. > > In general, I don't think we should validate the Python environment to > this extent, since we cannot fix the problem for the user anyway, only > flag it, and since python explodes rather loudly in this case, I think > we should be able to leave it up to developers that are savvy enough > to build EDK2 to also find the python distutils package for their > platform. > > Note that that doesn't mean we shouldn't document this, and not just > for Ubuntu. But I think putting it in the script is overkill. Yes, I agree It is also worth noting that python3-distutils is the current debian/ubuntu package name. So if we *do* print a message... > > Contributed-under: TianoCore Contribution Agreement 1.1 > > Signed-off-by: Bob Feng <bob.c.feng@intel.com> > > Cc: Liming Gao <liming.gao@intel.com> > > --- > > BaseTools/Tests/RunTests.py | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > > > diff --git a/BaseTools/Tests/RunTests.py b/BaseTools/Tests/RunTests.py > > index 0dd65632d0..64778db981 100644 > > --- a/BaseTools/Tests/RunTests.py > > +++ b/BaseTools/Tests/RunTests.py > > @@ -17,10 +17,24 @@ > > # > > import os > > import sys > > import unittest > > > > +distutils_exist = True > > +try: > > + import distutils.util > > +except: > > + distutils_exist = False > > + > > +if not distutils_exist: > > + print(""" > > +python3-distutil packages is missing. Please install it with the following command: ... printing "missing python distutils package" and possibly python version would be more reliable. But as Ard points out - this is effectively what python itself will say. / Leif > > + > > +bash$ sudo apt-get install python3-distutil > > +""") > > + sys.exit(-1) > > + > > import TestTools > > > > def GetCTestSuite(): > > import CToolsTests > > return CToolsTests.TheTestSuite() > > -- > > 2.20.1.windows.1 > > > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Patch] BaseTools: Add python3-distutils Ubuntu package checking 2019-02-27 8:26 ` Leif Lindholm @ 2019-02-27 8:52 ` Feng, Bob C 2019-02-27 8:59 ` Leif Lindholm 2019-02-27 12:38 ` Laszlo Ersek 0 siblings, 2 replies; 6+ messages in thread From: Feng, Bob C @ 2019-02-27 8:52 UTC (permalink / raw) To: Leif Lindholm; +Cc: Ard Biesheuvel, edk2-devel@lists.01.org, Gao, Liming Thanks for comments. I think the print message is not good. It's based on Ubutun OS. It's not right. I think the import error need to be caught and then print some messages, otherwise the build tool will break and print the call stack which is not friendly to user. Thanks, Bob -----Original Message----- From: Leif Lindholm [mailto:leif.lindholm@linaro.org] Sent: Wednesday, February 27, 2019 4:26 PM To: Feng, Bob C <bob.c.feng@intel.com> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>; edk2-devel@lists.01.org; Gao, Liming <liming.gao@intel.com> Subject: Re: [edk2] [Patch] BaseTools: Add python3-distutils Ubuntu package checking On Wed, Feb 27, 2019 at 09:07:49AM +0100, Ard Biesheuvel wrote: > On Tue, 26 Feb 2019 at 02:05, Feng, Bob C <bob.c.feng@intel.com> wrote: > > > > https://bugzilla.tianocore.org/show_bug.cgi?id=1509 > > > > Add python3-distutils Ubuntu package checking. > > > > Hi Bob, > > This assumes that all Linux systems are Ubuntu based, which is not > true. The apt tool is specific to Debian/Ubuntu, Fedora/Redhat and > Suse all use something else. > > In general, I don't think we should validate the Python environment to > this extent, since we cannot fix the problem for the user anyway, only > flag it, and since python explodes rather loudly in this case, I think > we should be able to leave it up to developers that are savvy enough > to build EDK2 to also find the python distutils package for their > platform. > > Note that that doesn't mean we shouldn't document this, and not just > for Ubuntu. But I think putting it in the script is overkill. Yes, I agree It is also worth noting that python3-distutils is the current debian/ubuntu package name. So if we *do* print a message... > > Contributed-under: TianoCore Contribution Agreement 1.1 > > Signed-off-by: Bob Feng <bob.c.feng@intel.com> > > Cc: Liming Gao <liming.gao@intel.com> > > --- > > BaseTools/Tests/RunTests.py | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > > > diff --git a/BaseTools/Tests/RunTests.py > > b/BaseTools/Tests/RunTests.py index 0dd65632d0..64778db981 100644 > > --- a/BaseTools/Tests/RunTests.py > > +++ b/BaseTools/Tests/RunTests.py > > @@ -17,10 +17,24 @@ > > # > > import os > > import sys > > import unittest > > > > +distutils_exist = True > > +try: > > + import distutils.util > > +except: > > + distutils_exist = False > > + > > +if not distutils_exist: > > + print(""" > > +python3-distutil packages is missing. Please install it with the following command: ... printing "missing python distutils package" and possibly python version would be more reliable. But as Ard points out - this is effectively what python itself will say. / Leif > > + > > +bash$ sudo apt-get install python3-distutil > > +""") > > + sys.exit(-1) > > + > > import TestTools > > > > def GetCTestSuite(): > > import CToolsTests > > return CToolsTests.TheTestSuite() > > -- > > 2.20.1.windows.1 > > > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Patch] BaseTools: Add python3-distutils Ubuntu package checking 2019-02-27 8:52 ` Feng, Bob C @ 2019-02-27 8:59 ` Leif Lindholm 2019-02-27 12:38 ` Laszlo Ersek 1 sibling, 0 replies; 6+ messages in thread From: Leif Lindholm @ 2019-02-27 8:59 UTC (permalink / raw) To: Feng, Bob C; +Cc: Ard Biesheuvel, edk2-devel@lists.01.org, Gao, Liming On Wed, Feb 27, 2019 at 08:52:08AM +0000, Feng, Bob C wrote: > Thanks for comments. I think the print message is not good. It's based on Ubutun OS. It's not right. > > I think the import error need to be caught and then print some > messages, otherwise the build tool will break and print the call > stack which is not friendly to user. I agree printing the call stack is not useful for import errors. Is there no way to suppress that for basic environment issues? Surely a "failed to import..." message would also be printed? Regards, Leif > Thanks, > Bob > > -----Original Message----- > From: Leif Lindholm [mailto:leif.lindholm@linaro.org] > Sent: Wednesday, February 27, 2019 4:26 PM > To: Feng, Bob C <bob.c.feng@intel.com> > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>; edk2-devel@lists.01.org; Gao, Liming <liming.gao@intel.com> > Subject: Re: [edk2] [Patch] BaseTools: Add python3-distutils Ubuntu package checking > > On Wed, Feb 27, 2019 at 09:07:49AM +0100, Ard Biesheuvel wrote: > > On Tue, 26 Feb 2019 at 02:05, Feng, Bob C <bob.c.feng@intel.com> wrote: > > > > > > https://bugzilla.tianocore.org/show_bug.cgi?id=1509 > > > > > > Add python3-distutils Ubuntu package checking. > > > > > > > Hi Bob, > > > > This assumes that all Linux systems are Ubuntu based, which is not > > true. The apt tool is specific to Debian/Ubuntu, Fedora/Redhat and > > Suse all use something else. > > > > In general, I don't think we should validate the Python environment to > > this extent, since we cannot fix the problem for the user anyway, only > > flag it, and since python explodes rather loudly in this case, I think > > we should be able to leave it up to developers that are savvy enough > > to build EDK2 to also find the python distutils package for their > > platform. > > > > Note that that doesn't mean we shouldn't document this, and not just > > for Ubuntu. But I think putting it in the script is overkill. > > Yes, I agree > > It is also worth noting that python3-distutils is the current debian/ubuntu package name. So if we *do* print a message... > > > > Contributed-under: TianoCore Contribution Agreement 1.1 > > > Signed-off-by: Bob Feng <bob.c.feng@intel.com> > > > Cc: Liming Gao <liming.gao@intel.com> > > > --- > > > BaseTools/Tests/RunTests.py | 14 ++++++++++++++ > > > 1 file changed, 14 insertions(+) > > > > > > diff --git a/BaseTools/Tests/RunTests.py > > > b/BaseTools/Tests/RunTests.py index 0dd65632d0..64778db981 100644 > > > --- a/BaseTools/Tests/RunTests.py > > > +++ b/BaseTools/Tests/RunTests.py > > > @@ -17,10 +17,24 @@ > > > # > > > import os > > > import sys > > > import unittest > > > > > > +distutils_exist = True > > > +try: > > > + import distutils.util > > > +except: > > > + distutils_exist = False > > > + > > > +if not distutils_exist: > > > + print(""" > > > +python3-distutil packages is missing. Please install it with the following command: > > ... printing "missing python distutils package" and possibly python version would be more reliable. > > But as Ard points out - this is effectively what python itself will say. > > / > Leif > > > > + > > > +bash$ sudo apt-get install python3-distutil > > > +""") > > > + sys.exit(-1) > > > + > > > import TestTools > > > > > > def GetCTestSuite(): > > > import CToolsTests > > > return CToolsTests.TheTestSuite() > > > -- > > > 2.20.1.windows.1 > > > > > > _______________________________________________ > > > edk2-devel mailing list > > > edk2-devel@lists.01.org > > > https://lists.01.org/mailman/listinfo/edk2-devel > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Patch] BaseTools: Add python3-distutils Ubuntu package checking 2019-02-27 8:52 ` Feng, Bob C 2019-02-27 8:59 ` Leif Lindholm @ 2019-02-27 12:38 ` Laszlo Ersek 1 sibling, 0 replies; 6+ messages in thread From: Laszlo Ersek @ 2019-02-27 12:38 UTC (permalink / raw) To: Feng, Bob C, Leif Lindholm; +Cc: edk2-devel@lists.01.org, Gao, Liming On 02/27/19 09:52, Feng, Bob C wrote: > Thanks for comments. I think the print message is not good. It's based on Ubutun OS. It's not right. > > I think the import error need to be caught and then print some messages, otherwise the build tool will break and print the call stack which is not friendly to user. I agree. OS or package name specific references should not be printed, but a user-friendly, concise message about the missing Python feature should be. As soon as I see a Python (or Java, for that matter) stack dump dropped on me, my first instinct is to close the terminal window. Obviously I won't do that most of the time, but it takes effort to start deciphering the stack dump. Give me a usable one-liner error message, and *optionally* a stack dump to dig down. Given that the situation can be remedied by a google search ("what package on my system provides this Python feature") plus a package installation, the stack dump is entirely irrelevant in this case. Thanks Laszlo > -----Original Message----- > From: Leif Lindholm [mailto:leif.lindholm@linaro.org] > Sent: Wednesday, February 27, 2019 4:26 PM > To: Feng, Bob C <bob.c.feng@intel.com> > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>; edk2-devel@lists.01.org; Gao, Liming <liming.gao@intel.com> > Subject: Re: [edk2] [Patch] BaseTools: Add python3-distutils Ubuntu package checking > > On Wed, Feb 27, 2019 at 09:07:49AM +0100, Ard Biesheuvel wrote: >> On Tue, 26 Feb 2019 at 02:05, Feng, Bob C <bob.c.feng@intel.com> wrote: >>> >>> https://bugzilla.tianocore.org/show_bug.cgi?id=1509 >>> >>> Add python3-distutils Ubuntu package checking. >>> >> >> Hi Bob, >> >> This assumes that all Linux systems are Ubuntu based, which is not >> true. The apt tool is specific to Debian/Ubuntu, Fedora/Redhat and >> Suse all use something else. >> >> In general, I don't think we should validate the Python environment to >> this extent, since we cannot fix the problem for the user anyway, only >> flag it, and since python explodes rather loudly in this case, I think >> we should be able to leave it up to developers that are savvy enough >> to build EDK2 to also find the python distutils package for their >> platform. >> >> Note that that doesn't mean we shouldn't document this, and not just >> for Ubuntu. But I think putting it in the script is overkill. > > Yes, I agree > > It is also worth noting that python3-distutils is the current debian/ubuntu package name. So if we *do* print a message... > >>> Contributed-under: TianoCore Contribution Agreement 1.1 >>> Signed-off-by: Bob Feng <bob.c.feng@intel.com> >>> Cc: Liming Gao <liming.gao@intel.com> >>> --- >>> BaseTools/Tests/RunTests.py | 14 ++++++++++++++ >>> 1 file changed, 14 insertions(+) >>> >>> diff --git a/BaseTools/Tests/RunTests.py >>> b/BaseTools/Tests/RunTests.py index 0dd65632d0..64778db981 100644 >>> --- a/BaseTools/Tests/RunTests.py >>> +++ b/BaseTools/Tests/RunTests.py >>> @@ -17,10 +17,24 @@ >>> # >>> import os >>> import sys >>> import unittest >>> >>> +distutils_exist = True >>> +try: >>> + import distutils.util >>> +except: >>> + distutils_exist = False >>> + >>> +if not distutils_exist: >>> + print(""" >>> +python3-distutil packages is missing. Please install it with the following command: > > ... printing "missing python distutils package" and possibly python version would be more reliable. > > But as Ard points out - this is effectively what python itself will say. > > / > Leif > >>> + >>> +bash$ sudo apt-get install python3-distutil >>> +""") >>> + sys.exit(-1) >>> + >>> import TestTools >>> >>> def GetCTestSuite(): >>> import CToolsTests >>> return CToolsTests.TheTestSuite() >>> -- >>> 2.20.1.windows.1 >>> >>> _______________________________________________ >>> edk2-devel mailing list >>> edk2-devel@lists.01.org >>> https://lists.01.org/mailman/listinfo/edk2-devel >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.01.org >> https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel > ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-02-27 12:38 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-02-26 1:05 [Patch] BaseTools: Add python3-distutils Ubuntu package checking Feng, Bob C 2019-02-27 8:07 ` Ard Biesheuvel 2019-02-27 8:26 ` Leif Lindholm 2019-02-27 8:52 ` Feng, Bob C 2019-02-27 8:59 ` Leif Lindholm 2019-02-27 12:38 ` Laszlo Ersek
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox