From 5eae0cc6893b89420bd27a09bd0a89419d229ee2 Mon Sep 17 00:00:00 2001 From: Tim Orling Date: Tue, 31 Mar 2020 13:03:01 -0700 Subject: scripts/install-buildtools: improvements * 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/ * 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 Signed-off-by: Richard Purdie (cherry picked from commit c6c3a58dbf0ca6c4a41df7ff50fa56d39d7ee23f) Signed-off-by: Armin Kuster --- .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') 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") -- cgit 1.2.3-korg