[openwrt/openwrt] build: include size-limits to device-metadata
LEDE Commits
lede-commits at lists.infradead.org
Fri Apr 18 06:36:43 PDT 2025
blocktrron pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/0ee1ede25a9f8278a8e0bc0820e4c55d2023adf9
commit 0ee1ede25a9f8278a8e0bc0820e4c55d2023adf9
Author: David Bauer <mail at david-bauer.net>
AuthorDate: Mon Dec 11 14:46:12 2023 +0100
build: include size-limits to device-metadata
Include the image and kernel size limitations defined for each device to
the device metadata JSON.
These informations are only added if defined.
Signed-off-by: David Bauer <mail at david-bauer.net>
---
include/image.mk | 6 ++++++
scripts/json_add_image_info.py | 27 ++++++++++++++++++++++++++-
2 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/include/image.mk b/include/image.mk
index fd6f76b277..69fdd371b0 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -647,6 +647,8 @@ define Device/Build/initramfs
VERSION_NUMBER="$(VERSION_NUMBER)" \
VERSION_CODE="$(VERSION_CODE)" \
SUPPORTED_DEVICES="$$(SUPPORTED_DEVICES)" \
+ KERNEL_SIZE="$$(KERNEL_SIZE)" \
+ IMAGE_SIZE="$$(IMAGE_SIZE)" \
$(TOPDIR)/scripts/json_add_image_info.py $$@
endef
endif
@@ -781,6 +783,8 @@ define Device/Build/image
VERSION_NUMBER="$(VERSION_NUMBER)" \
VERSION_CODE="$(VERSION_CODE)" \
SUPPORTED_DEVICES="$(SUPPORTED_DEVICES)" \
+ KERNEL_SIZE="$(KERNEL_SIZE)" \
+ IMAGE_SIZE="$(IMAGE_SIZE)" \
$(TOPDIR)/scripts/json_add_image_info.py $$@
endef
@@ -835,6 +839,8 @@ define Device/Build/artifact
VERSION_NUMBER="$(VERSION_NUMBER)" \
VERSION_CODE="$(VERSION_CODE)" \
SUPPORTED_DEVICES="$(SUPPORTED_DEVICES)" \
+ KERNEL_SIZE="$(KERNEL_SIZE)" \
+ IMAGE_SIZE="$(IMAGE_SIZE)" \
$(TOPDIR)/scripts/json_add_image_info.py $$@
endef
diff --git a/scripts/json_add_image_info.py b/scripts/json_add_image_info.py
index 915e5f6181..3478cdbf22 100755
--- a/scripts/json_add_image_info.py
+++ b/scripts/json_add_image_info.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-from os import getenv
+from os import getenv, path
from pathlib import Path
from sys import argv
import hashlib
@@ -35,6 +35,17 @@ def get_titles():
return titles
+def get_numerical_size(image_size):
+ if image_size.endswith("g"):
+ return int(image_size[:-1]) * 1024 * 1024 * 1024
+ elif image_size.endswith("m"):
+ return int(image_size[:-1]) * 1024 * 1024
+ elif image_size.endswith("k"):
+ return int(image_size[:-1]) * 1024
+ else:
+ return int(image_size)
+
+
device_id = getenv("DEVICE_ID")
sha256_hash = hashlib.sha256()
@@ -52,6 +63,8 @@ if file_path.with_suffix(file_path.suffix + ".sha256sum").exists():
else:
hash_unsigned = hash_file
+file_size = path.getsize(file_path)
+
file_info = {
"metadata_version": 1,
"target": "{}/{}".format(getenv("TARGET"), getenv("SUBTARGET")),
@@ -67,6 +80,7 @@ file_info = {
"name": getenv("FILE_NAME"),
"sha256": hash_file,
"sha256_unsigned": hash_unsigned,
+ "size": file_size,
}
],
"device_packages": getenv("DEVICE_PACKAGES").split(),
@@ -76,6 +90,17 @@ file_info = {
},
}
+if getenv("IMAGE_SIZE") or getenv("KERNEL_SIZE"):
+ file_info["profiles"][device_id]["file_size_limits"] = {}
+ if getenv("IMAGE_SIZE"):
+ file_info["profiles"][device_id]["file_size_limits"]["image"] = get_numerical_size(
+ getenv("IMAGE_SIZE")
+ )
+ if getenv("KERNEL_SIZE"):
+ file_info["profiles"][device_id]["file_size_limits"]["kernel"] = get_numerical_size(
+ getenv("KERNEL_SIZE")
+ )
+
if getenv("FILE_FILESYSTEM"):
file_info["profiles"][device_id]["images"][0]["filesystem"] = getenv(
"FILE_FILESYSTEM"
More information about the lede-commits
mailing list