def compute_dynamic_package_lists()

in build/install-build-deps.py [0:0]


def compute_dynamic_package_lists():
  global _packages_arm
  global _packages_dbg
  global _packages_dev
  global _packages_lib
  global _packages_lib32
  global _packages_nacl

  if is_userland_64_bit():
    # 64-bit systems need a minimum set of 32-bit compat packages
    # for the pre-built NaCl binaries.
    _packages_dev += (
      'lib32gcc1',
      'lib32stdc++6',
      'libc6-i386',
    )

    # When cross building for arm/Android on 64-bit systems the host binaries
    # that are part of v8 need to be compiled with -m32 which means
    # that basic multilib support is needed.
    # gcc-multilib conflicts with the arm cross compiler (at least in trusty)
    # but g++-X.Y-multilib gives us the 32-bit support that we need. Find out
    # the appropriate value of X and Y by seeing what version the current
    # distribution's g++-multilib package depends on.
    output = subprocess.check_output(['apt-cache', 'depends', 'g++-multilib'])
    multilib_package = re.search(r'g\+\+-[0-9.]+-multilib', output).group()
    _packages_lib32 += (multilib_package,)

  lsb_codename = lsb_release_short_codename()

  # Find the proper version of libstdc++6-4.x-dbg.
  if lsb_codename == 'precise':
    _packages_dbg += ('libstdc++6-4.6-dbg',)
  elif lsb_codename == 'trusty':
    _packages_dbg += ('libstdc++6-4.8-dbg',)
  else:
    _packages_dbg += ('libstdc++6-4.9-dbg',)

  # Work around for dependency issue Ubuntu/Trusty: http://crbug.com/435056 .
  if lsb_codename == 'trusty':
    _packages_arm += (
      'g++-4.8-multilib-arm-linux-gnueabihf',
      'gcc-4.8-multilib-arm-linux-gnueabihf',
    )

  # Find the proper version of libgbm-dev. We can't just install libgbm-dev as
  # it depends on mesa, and only one version of mesa can exists on the system.
  # Hence we must match the same version or this entire script will fail.
  mesa_variant = ''
  for variant in ('-lts-trusty', '-lts-utopic'):
    rc, stdout, stderr = nonfatal_get_output(
        ['dpkg-query', '-Wf\'{Status}\'', 'libgl1-mesa-glx' + variant])
    if 'ok installed' in output:
      mesa_variant = variant
  _packages_dev += (
    'libgbm-dev' + mesa_variant,
    'libgl1-mesa-dev' + mesa_variant,
    'libgles2-mesa-dev' + mesa_variant,
    'mesa-common-dev' + mesa_variant,
  )

  if package_exists('ttf-mscorefonts-installer'):
    _packages_dev += ('ttf-mscorefonts-installer',)
  else:
    _packages_dev += ('msttcorefonts',)

  if package_exists('libnspr4-dbg'):
    _packages_dbg += ('libnspr4-dbg', 'libnss3-dbg')
    _packages_lib += ('libnspr4', 'libnss3')
  else:
    _packages_dbg += ('libnspr4-0d-dbg', 'libnss3-1d-dbg')
    _packages_lib += ('libnspr4-0d', 'libnss3-1d')

  if package_exists('libjpeg-dev'):
    _packages_dev += ('libjpeg-dev',)
  else:
    _packages_dev += ('libjpeg62-dev',)

  if package_exists('libudev1'):
    _packages_dev += ('libudev1',)
    _packages_nacl += ('libudev1:i386',)
  else:
    _packages_dev += ('libudev0',)
    _packages_nacl += ('libudev0:i386',)

  if package_exists('libbrlapi0.6'):
    _packages_dev += ('libbrlapi0.6',)
  else:
    _packages_dev += ('libbrlapi0.5',)

  # Some packages are only needed if the distribution actually supports
  # installing them.
  if package_exists('appmenu-gtk'):
    _packages_lib += ('appmenu-gtk',)

  _packages_dev += _packages_chromeos_dev
  _packages_lib += _packages_chromeos_lib
  _packages_nacl += _packages_naclports