build: store default/device packages in JSON

With this commit the `profiles.json` contain both the target specific
`default_packages` as well as the device specific `device_packages` as a
array of strings.

This information is required for downstream projects like the various
web-based interactive firmware generators.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Paul Spooren <mail@aparcar.org>
master
Paul Spooren 4 years ago committed by Daniel Golle
parent d4c80f5b17
commit 263f7e5bbd

@ -592,6 +592,7 @@ define Device/Build/image
DEVICE_ALT2_MODEL="$(DEVICE_ALT2_MODEL)" \ DEVICE_ALT2_MODEL="$(DEVICE_ALT2_MODEL)" \
DEVICE_ALT2_VARIANT="$(DEVICE_ALT2_VARIANT)" \ DEVICE_ALT2_VARIANT="$(DEVICE_ALT2_VARIANT)" \
DEVICE_TITLE="$(DEVICE_TITLE)" \ DEVICE_TITLE="$(DEVICE_TITLE)" \
DEVICE_PACKAGES="$(DEVICE_PACKAGES)" \
TARGET="$(BOARD)" \ TARGET="$(BOARD)" \
SUBTARGET="$(if $(SUBTARGET),$(SUBTARGET),generic)" \ SUBTARGET="$(if $(SUBTARGET),$(SUBTARGET),generic)" \
VERSION_NUMBER="$(VERSION_NUMBER)" \ VERSION_NUMBER="$(VERSION_NUMBER)" \

@ -54,6 +54,7 @@ image_info = {
"sha256": image_hash, "sha256": image_hash,
} }
], ],
"device_packages": getenv("DEVICE_PACKAGES").split(),
"supported_devices": getenv("SUPPORTED_DEVICES").split(), "supported_devices": getenv("SUPPORTED_DEVICES").split(),
"titles": get_titles(), "titles": get_titles(),
} }

@ -1,9 +1,10 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import json from os import getenv, environ
from pathlib import Path from pathlib import Path
from os import getenv from subprocess import run
from sys import argv from sys import argv
import json
if len(argv) != 2: if len(argv) != 2:
print("JSON info files script requires ouput file as argument") print("JSON info files script requires ouput file as argument")
@ -31,6 +32,21 @@ for json_file in work_dir.glob("*.json"):
image_info["profiles"][device_id]["images"][0] image_info["profiles"][device_id]["images"][0]
) )
output["default_packages"] = run(
[
"make",
"--no-print-directory",
"-C",
f"target/linux/{output['target'].split('/')[0]}",
"val.DEFAULT_PACKAGES",
],
capture_output=True,
check=True,
env=environ.copy().update({"TOPDIR": Path().cwd()}),
text=True,
).stdout.split()
if output: if output:
output_path.write_text(json.dumps(output, sort_keys=True, separators=(",", ":"))) output_path.write_text(json.dumps(output, sort_keys=True, separators=(",", ":")))
else: else:

Loading…
Cancel
Save