Use linux_distribution() from distro package instead of builtin platform module

platform.linux_distribution() is deprecated since Python 3.5 and
will be removed with Python 3.8.
This commit is contained in:
marmeladema 2019-10-20 19:50:44 +01:00
parent 0aa6314ee2
commit 4d6f28df35
3 changed files with 25 additions and 17 deletions

View file

@ -2,6 +2,7 @@
# since `--system-site-packages` is enabled # since `--system-site-packages` is enabled
blessings == 1.6 blessings == 1.6
distro == 1.4
mach == 0.6.0 mach == 0.6.0
mozdebug == 0.1 mozdebug == 0.1
mozinfo == 0.8 mozinfo == 0.8

View file

@ -8,9 +8,10 @@ from distutils.spawn import find_executable
from distutils.version import LooseVersion from distutils.version import LooseVersion
import json import json
import os import os
import platform import distro
import shutil import shutil
import subprocess import subprocess
import six
import six.moves.urllib as urllib import six.moves.urllib as urllib
from subprocess import PIPE from subprocess import PIPE
from zipfile import BadZipfile from zipfile import BadZipfile
@ -342,9 +343,11 @@ LINUX_SPECIFIC_BOOTSTRAPPERS = {
def get_linux_distribution(): def get_linux_distribution():
distro, version, _ = platform.linux_distribution() distrib, version, _ = distro.linux_distribution()
distrib = six.ensure_str(distrib)
version = six.ensure_str(version)
if distro == 'LinuxMint': if distrib == 'LinuxMint':
if '.' in version: if '.' in version:
major, _ = version.split('.', 1) major, _ = version.split('.', 1)
else: else:
@ -357,10 +360,10 @@ def get_linux_distribution():
elif major == '17': elif major == '17':
base_version = '14.04' base_version = '14.04'
else: else:
raise Exception('unsupported version of %s: %s' % (distro, version)) raise Exception('unsupported version of %s: %s' % (distrib, version))
distro, version = 'Ubuntu', base_version distrib, version = 'Ubuntu', base_version
elif distro.lower() == 'elementary': elif distrib.lower() == 'elementary':
if version == '5.0': if version == '5.0':
base_version = '18.04' base_version = '18.04'
elif version[0:3] == '0.4': elif version[0:3] == '0.4':
@ -372,21 +375,21 @@ def get_linux_distribution():
elif version == '0.1': elif version == '0.1':
base_version = '10.10' base_version = '10.10'
else: else:
raise Exception('unsupported version of %s: %s' % (distro, version)) raise Exception('unsupported version of %s: %s' % (distrib, version))
distro, version = 'Ubuntu', base_version distrib, version = 'Ubuntu', base_version
elif distro.lower() == 'ubuntu': elif distrib.lower() == 'ubuntu':
if version > '19.04': if version > '19.04':
raise Exception('unsupported version of %s: %s' % (distro, version)) raise Exception('unsupported version of %s: %s' % (distrib, version))
# Fixme: we should allow checked/supported versions only # Fixme: we should allow checked/supported versions only
elif distro.lower() not in [ elif distrib.lower() not in [
'centos', 'centos',
'centos linux', 'centos linux',
'debian', 'debian',
'fedora', 'fedora',
]: ]:
raise Exception('mach bootstrap does not support %s, please file a bug' % distro) raise Exception('mach bootstrap does not support %s, please file a bug' % distrib)
return distro, version return distrib, version
def bootstrap(context, force=False, specific=None): def bootstrap(context, force=False, specific=None):
@ -396,9 +399,9 @@ def bootstrap(context, force=False, specific=None):
if "windows-msvc" in host_triple(): if "windows-msvc" in host_triple():
bootstrapper = windows_msvc bootstrapper = windows_msvc
elif "linux-gnu" in host_triple(): elif "linux-gnu" in host_triple():
distro, version = get_linux_distribution() distrib, version = get_linux_distribution()
context.distro = distro context.distro = distrib
context.distro_version = version context.distro_version = version
bootstrapper = LINUX_SPECIFIC_BOOTSTRAPPERS.get(specific, linux) bootstrapper = LINUX_SPECIFIC_BOOTSTRAPPERS.get(specific, linux)

View file

@ -18,10 +18,12 @@ import locale
import os import os
from os import path from os import path
import platform import platform
import distro
import re import re
import contextlib import contextlib
import subprocess import subprocess
from subprocess import PIPE from subprocess import PIPE
import six
import sys import sys
import tarfile import tarfile
import zipfile import zipfile
@ -679,8 +681,10 @@ install them, let us know by filing a bug!")
append_to_path_env(path.join(libpath, "pkgconfig"), env, "PKG_CONFIG_PATH") append_to_path_env(path.join(libpath, "pkgconfig"), env, "PKG_CONFIG_PATH")
if sys.platform == "linux2": if sys.platform == "linux2":
distro, version, _ = platform.linux_distribution() distrib, version, _ = distro.linux_distribution()
if distro == "Ubuntu" and (version == "16.04" or version == "14.04"): distrib = six.ensure_str(distrib)
version = six.ensure_str(version)
if distrib == "Ubuntu" and (version == "16.04" or version == "14.04"):
env["HARFBUZZ_SYS_NO_PKG_CONFIG"] = "true" env["HARFBUZZ_SYS_NO_PKG_CONFIG"] = "true"
if extra_path: if extra_path: