xref: /openbmc/openbmc/poky/scripts/oe-debuginfod (revision edff49234e31f23dc79f823473c9e286a21596c1)
1#!/usr/bin/env python3
2#
3# Copyright OpenEmbedded Contributors
4#
5# SPDX-License-Identifier: MIT
6#
7
8import os
9import sys
10scripts_path = os.path.dirname(os.path.realpath(__file__))
11lib_path = scripts_path + "/lib"
12sys.path.insert(0, lib_path)
13import scriptpath
14scriptpath.add_bitbake_lib_path()
15
16import bb.tinfoil
17import subprocess
18import argparse
19
20if __name__ == "__main__":
21    p = argparse.ArgumentParser()
22    p.add_argument("-d", action='store_true', \
23                         help="store debuginfod files in project sub-directory")
24
25    args = p.parse_args()
26
27    with bb.tinfoil.Tinfoil() as tinfoil:
28        tinfoil.prepare(config_only=True)
29        package_classes_var = "DEPLOY_DIR_" + tinfoil.config_data.getVar("PACKAGE_CLASSES").split()[0].replace("package_", "").upper()
30        feed_dir = tinfoil.config_data.getVar(package_classes_var, expand=True)
31
32    opts = [ '--verbose', '-R', '-U', feed_dir ]
33
34    if args.d:
35        fdir = os.path.join(os.getcwd(), 'oedid-files')
36        os.makedirs(fdir, exist_ok=True)
37        opts += [ '-d', os.path.join(fdir, 'did.sqlite') ]
38
39    subprocess.call(['bitbake', '-c', 'addto_recipe_sysroot', 'elfutils-native'])
40
41    subprocess.call(['oe-run-native', 'elfutils-native', 'debuginfod'] + opts)
42    # we should not get here
43    print("\nTo use the debuginfod server please ensure that this variable PACKAGECONFIG:pn-elfutils-native = \"debuginfod libdebuginfod\" is set in the local.conf")
44