On Fri, Nov 26, 2021 at 8:34 AM Richard Purdie <
richard.pur...@linuxfoundation.org> wrote:

> distutils is going away and we have functionality in bitbake which can
> handle these comparisions so switch to the bb.utils function.
>

Looks good. I will refactor the distutils deprecation series to follow suit.


> Signed-off-by: Richard Purdie <richard.pur...@linuxfoundation.org>
> ---
>  meta/classes/sanity.bbclass | 18 ++++++------------
>  meta/lib/oe/distro_check.py |  2 +-
>  meta/lib/oe/terminal.py     |  7 +++----
>  3 files changed, 10 insertions(+), 17 deletions(-)
>
> diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
> index 9fbc9c18e7c..0e20589b22d 100644
> --- a/meta/classes/sanity.bbclass
> +++ b/meta/classes/sanity.bbclass
> @@ -462,13 +462,12 @@ def check_sanity_validmachine(sanity_data):
>  # Patch before 2.7 can't handle all the features in git-style diffs.  Some
>  # patches may incorrectly apply, and others won't apply at all.
>  def check_patch_version(sanity_data):
> -    from distutils.version import LooseVersion
>      import re, subprocess
>
>      try:
>          result = subprocess.check_output(["patch", "--version"],
> stderr=subprocess.STDOUT).decode('utf-8')
>          version = re.search(r"[0-9.]+", result.splitlines()[0]).group()
> -        if LooseVersion(version) < LooseVersion("2.7"):
> +        if bb.utils.vercmp_string_op(version, "2.7", "<"):
>              return "Your version of patch is older than 2.7 and has bugs
> which will break builds. Please install a newer version of patch.\n"
>          else:
>              return None
> @@ -478,7 +477,6 @@ def check_patch_version(sanity_data):
>  # Unpatched versions of make 3.82 are known to be broken.  See GNU
> Savannah Bug 30612.
>  # Use a modified reproducer from http://savannah.gnu.org/bugs/?30612 to
> validate.
>  def check_make_version(sanity_data):
> -    from distutils.version import LooseVersion
>      import subprocess
>
>      try:
> @@ -486,7 +484,7 @@ def check_make_version(sanity_data):
>      except subprocess.CalledProcessError as e:
>          return "Unable to execute make --version, exit code %d\n%s\n" %
> (e.returncode, e.output)
>      version = result.split()[2]
> -    if LooseVersion(version) == LooseVersion("3.82"):
> +    if bb.utils.vercmp_string_op(version, "3.82", "=="):
>          # Construct a test file
>          f = open("makefile_test", "w")
>          f.write("makefile_test.a: makefile_test_a.c makefile_test_b.c
> makefile_test.a( makefile_test_a.c makefile_test_b.c)\n")
> @@ -539,12 +537,11 @@ def check_wsl(d):
>  # built buildtools-extended-tarball)
>  #
>  def check_gcc_version(sanity_data):
> -    from distutils.version import LooseVersion
>      import subprocess
>
>      build_cc, version = oe.utils.get_host_compiler_version(sanity_data)
>      if build_cc.strip() == "gcc":
> -        if LooseVersion(version) < LooseVersion("7.5"):
> +        if bb.utils.vercmp_string_op(version, "7.5", "<"):
>              return "Your version of gcc is older than 7.5 and will break
> builds. Please install a newer version of gcc (you could use the project's
> buildtools-extended-tarball or use scripts/install-buildtools).\n"
>      return None
>
> @@ -552,14 +549,13 @@ def check_gcc_version(sanity_data):
>  # but earlier versions do not; this needs to work properly for sstate
>  # Version 1.28 is needed so opkg-build works correctly when reproducibile
> builds are enabled
>  def check_tar_version(sanity_data):
> -    from distutils.version import LooseVersion
>      import subprocess
>      try:
>          result = subprocess.check_output(["tar", "--version"],
> stderr=subprocess.STDOUT).decode('utf-8')
>      except subprocess.CalledProcessError as e:
>          return "Unable to execute tar --version, exit code %d\n%s\n" %
> (e.returncode, e.output)
>      version = result.split()[3]
> -    if LooseVersion(version) < LooseVersion("1.28"):
> +    if bb.utils.vercmp_string_op(version, "1.28", "<"):
>          return "Your version of tar is older than 1.28 and does not have
> the support needed to enable reproducible builds. Please install a newer
> version of tar (you could use the project's buildtools-tarball from our
> last release or use scripts/install-buildtools).\n"
>      return None
>
> @@ -567,14 +563,13 @@ def check_tar_version(sanity_data):
>  # The kernel tools assume git >= 1.8.3.1 (verified needed > 1.7.9.5) see
> #6162
>  # The git fetcher also had workarounds for git < 1.7.9.2 which we've
> dropped
>  def check_git_version(sanity_data):
> -    from distutils.version import LooseVersion
>      import subprocess
>      try:
>          result = subprocess.check_output(["git", "--version"],
> stderr=subprocess.DEVNULL).decode('utf-8')
>      except subprocess.CalledProcessError as e:
>          return "Unable to execute git --version, exit code %d\n%s\n" %
> (e.returncode, e.output)
>      version = result.split()[2]
> -    if LooseVersion(version) < LooseVersion("1.8.3.1"):
> +    if bb.utils.vercmp_string_op(version, "1.8.3.1", "<"):
>          return "Your version of git is older than 1.8.3.1 and has bugs
> which will break builds. Please install a newer version of git.\n"
>      return None
>
> @@ -796,9 +791,8 @@ def check_sanity_everybuild(status, d):
>          status.addresult('The system requires at least Python 3.6 to run.
> Please update your Python interpreter.\n')
>
>      # Check the bitbake version meets minimum requirements
> -    from distutils.version import LooseVersion
>      minversion = d.getVar('BB_MIN_VERSION')
> -    if (LooseVersion(bb.__version__) < LooseVersion(minversion)):
> +    if bb.utils.vercmp_string_op(bb.__version__, minversion, "<"):
>          status.addresult('Bitbake version %s is required and version %s
> was found\n' % (minversion, bb.__version__))
>
>      sanity_check_locale(d)
> diff --git a/meta/lib/oe/distro_check.py b/meta/lib/oe/distro_check.py
> index 88e46c354d2..4b2a9bec01b 100644
> --- a/meta/lib/oe/distro_check.py
> +++ b/meta/lib/oe/distro_check.py
> @@ -26,7 +26,7 @@ def find_latest_numeric_release(url, d):
>      maxstr=""
>      for link in get_links_from_url(url, d):
>          try:
> -            # TODO use LooseVersion
> +            # TODO use bb.utils.vercmp_string_op()
>              release = float(link)
>          except:
>              release = 0
> diff --git a/meta/lib/oe/terminal.py b/meta/lib/oe/terminal.py
> index 59aa80de669..53186c4a3ed 100644
> --- a/meta/lib/oe/terminal.py
> +++ b/meta/lib/oe/terminal.py
> @@ -5,7 +5,6 @@ import logging
>  import oe.classutils
>  import shlex
>  from bb.process import Popen, ExecutionError
> -from distutils.version import LooseVersion
>
>  logger = logging.getLogger('BitBake.OE.Terminal')
>
> @@ -86,10 +85,10 @@ class Konsole(XTerminal):
>      def __init__(self, sh_cmd, title=None, env=None, d=None):
>          # Check version
>          vernum = check_terminal_version("konsole")
> -        if vernum and LooseVersion(vernum) < '2.0.0':
> +        if vernum and bb.utils.vercmp_string_op(vernum, "2.0.0", "<"):
>              # Konsole from KDE 3.x
>              self.command = 'konsole -T "{title}" -e {command}'
> -        elif vernum and LooseVersion(vernum) < '16.08.1':
> +        elif vernum and bb.utils.vercmp_string_op(vernum, "16.08.1", "<"):
>              # Konsole pre 16.08.01 Has nofork
>              self.command = 'konsole --nofork --workdir . -p
> tabtitle="{title}" -e {command}'
>          XTerminal.__init__(self, sh_cmd, title, env, d)
> @@ -260,7 +259,7 @@ def spawn(name, sh_cmd, title=None, env=None, d=None):
>
>  def check_tmux_version(desired):
>      vernum = check_terminal_version("tmux")
> -    if vernum and LooseVersion(vernum) < desired:
> +    if vernum and bb.utils.vercmp_string_op(vernum, desired, "<"):
>          return False
>      return vernum
>
> --
> 2.32.0
>
>
> 
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#158843): 
https://lists.openembedded.org/g/openembedded-core/message/158843
Mute This Topic: https://lists.openembedded.org/mt/87322233/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to