Re: [OE-core] [PATCH 1/4] scripts/install-buildtools: improvements

Tim Orling
2020-04-01T22:02:19Z

[-- Attachment #1: Type: text/plain, Size: 6148 bytes --]

On Wed, Apr 1, 2020 at 2:32 PM Tim Orling via lists.openembedded.org
<ticotimo=gmail.com@lists.openembedded.org> wrote:

>
>
> On Wed, Apr 1, 2020 at 1:09 PM Andre McCurdy <armccurdy@gmail.com> wrote:
>
>> On Mon, Mar 30, 2020 at 12:43 PM Tim Orling
>> <timothy.t.orling@linux.intel.com> wrote:
>> >
>> > * Install directory defaults to scripts/../buildtools
>> > e.g. --directory is set by default
>> > This avoids the user having to type in their sudo password
>> > to install in /opt/poky/<installer-version>
>> >
>> > * Use "." rather than "source" for sourcing the environment script
>> > as not all distros (e.g. Debian) have "source" by default.
>> >
>> > * Add buildtools/ to .gitignore
>> >
>> > * Fix typos in example usage (--install-version -> --installer-version)
>> >
>> > [YOCTO #13832]
>> >
>> > Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
>> > ---
>> > .gitignore | 1 +
>> > scripts/install-buildtools | 13 +++++++++----
>> > 2 files changed, 10 insertions(+), 4 deletions(-)
>> >
>> > diff --git a/.gitignore b/.gitignore
>> > index d0e6b2fb89..b66d371aac 100644
>> > --- a/.gitignore
>> > +++ b/.gitignore
>> > @@ -9,6 +9,7 @@ pstage/
>> > scripts/oe-git-proxy-socks
>> > sources/
>> > meta-*/
>> > +buildtools/
>> > !meta-skeleton
>> > !meta-selftest
>> > hob-image-*.bb
>> > diff --git a/scripts/install-buildtools b/scripts/install-buildtools
>> > index 0947e9c4d6..49cab1345a 100755
>> > --- a/scripts/install-buildtools
>> > +++ b/scripts/install-buildtools
>> > @@ -17,7 +17,7 @@
>> > # $ install-buildtools \
>> > # --base-url http://downloads.yoctoproject.org/releases/yocto
>> \
>> > # --release yocto-3.1_M2 \
>> > -# --install-version 3.0+snapshot
>> > +# --installer-version 3.0+snapshot
>> > # --build-date 202000122
>> > #
>> > # Example usage (standard buildtools from release):
>> > @@ -29,7 +29,7 @@
>> > # $ install-buildtools --without-extended-buildtools \
>> > # --base-url http://downloads.yoctoproject.org/releases/yocto
>> \
>> > # --release yocto-3.0.2 \
>> > -# --install-version 3.0.2
>> > +# --installer-version 3.0.2
>> > #
>> >
>> > import argparse
>> > @@ -59,6 +59,7 @@ if not bitbakepath:
>> > PROGNAME = 'install-buildtools'
>> > logger = scriptutils.logger_create(PROGNAME, stream=sys.stdout)
>> >
>> > +DEFAULT_INSTALL_DIR: str =
>> os.path.join(os.path.split(scripts_path)[0],'buildtools')
>>
>> It looks like there are some assumptions about the minimum version of
>> python3 on the host in order to even be able to run
>> install-buildtools. Should that be checked explicitly?
>>
>
> To be honest, everything was written on CentOS-7, where ‘python3’ is now
> python36.
>
> The remaining supported holdout for 3.4 is Debian-8 (Jessie). Which also
> happens to have tar 1.27. At least it has git 2.1.4, so it’s not a complete
> mess.
>
> Python 3.4 is already EOL. We should not support it for the complete build
> system, but I can see that the install-buildtools script should ideally
> still run on python34. The whole point is to make it easier to install the
> pre-built buildtools.
>

Python 3.5 is now required in bitbake/lib/bb/__init__.py
Which is needed for bb.utils.md5sum_file and sha256_file to check the
checksum of the download. I’d rather not have to rewrite those functions.

This means Debian-8 is a conundrum.

> Debian-8 is EOL in June 2020.
>
>
>> > DEFAULT_BASE_URL: str = '
>> http://downloads.yoctoproject.org/releases/yocto'
>> > DEFAULT_RELEASE: str = 'yocto-3.1_M2'
>> > DEFAULT_INSTALLER_VERSION: str = '3.0+snapshot'
>> > @@ -66,6 +67,7 @@ DEFAULT_BUILDDATE: str = "20200122"
>> >
>> >
>> > def main():
>> > + global DEFAULT_INSTALL_DIR
>> > global DEFAULT_BASE_URL
>> > global DEFAULT_RELEASE
>> > global DEFAULT_INSTALLER_VERSION
>> > @@ -73,6 +75,7 @@ def main():
>> > filename: str = ""
>> > release: str = ""
>> > buildtools_url: str = ""
>> > + install_dir: str = ""
>> >
>> > parser = argparse.ArgumentParser(
>> > description="Buildtools installation helper",
>> > @@ -87,6 +90,7 @@ def main():
>> > '(optional)\nRequires --url',
>> > action='store')
>> > parser.add_argument('-d', '--directory',
>> > + default=DEFAULT_INSTALL_DIR,
>> > help='directory where buildtools SDK will be
>> installed (optional)',
>> > action='store')
>> > parser.add_argument('-r', '--release',
>> > @@ -216,12 +220,12 @@ def main():
>> > st = os.stat(tmpbuildtools)
>> > os.chmod(tmpbuildtools, st.st_mode | stat.S_IEXEC)
>> > logger.debug(os.stat(tmpbuildtools))
>> > - install_dir = "/opt/poky/%s" % args.installer_version
>> > if args.directory:
>> > install_dir = args.directory
>> > ret = subprocess.call("%s -d %s -y" %
>> > (tmpbuildtools, install_dir),
>> shell=True)
>> > else:
>> > + install_dir = "/opt/poky/%s" % args.installer_version
>> > ret = subprocess.call("%s -y" % tmpbuildtools, shell=True)
>> > if ret != 0:
>> > logger.error("Could not run buildtools installer")
>> > @@ -238,7 +242,8 @@ def main():
>> > tool = 'gcc'
>> > else:
>> > tool = 'tar'
>> > - proc = subprocess.run("source
>> %s/environment-setup-x86_64-pokysdk-linux && which %s" %
>> > + logger.debug("install_dir: %s" % install_dir)
>> > + proc = subprocess.run(".
>> %s/environment-setup-x86_64-pokysdk-linux && which %s" %
>> > (install_dir, tool),
>> > shell=True, stdout=subprocess.PIPE)
>> > which_tool = proc.stdout.decode("utf-8")
>> > --
>> > 2.24.0
>> >
>> >
>>
>>
>

[-- Attachment #2: Type: text/html, Size: 9285 bytes --]