summaryrefslogtreecommitdiff
path: root/scripts/package-build/linux-kernel
diff options
context:
space:
mode:
authorAndrii Klymenko <a.klymenko@vyos.io>2026-05-18 17:28:03 +0300
committerGitHub <noreply@github.com>2026-05-18 17:28:03 +0300
commit440a78d5e423e444c29f58cd5a377cff859863eb (patch)
treee1442da02a150a9ee4e3bf6b91862337bd4e5807 /scripts/package-build/linux-kernel
parent11a3b4bd380b0ecf757c71642ce4d0633faf3c3c (diff)
parentb956a4b265dc76f4441b7fe596a9f1efb1dc8b90 (diff)
downloadvyos-build-440a78d5e423e444c29f58cd5a377cff859863eb.tar.gz
vyos-build-440a78d5e423e444c29f58cd5a377cff859863eb.zip
Merge pull request #1194 from c-po/kernel-source
Kernel: T8880: reduce size of Kernel source TAR
Diffstat (limited to 'scripts/package-build/linux-kernel')
-rwxr-xr-xscripts/package-build/linux-kernel/build.py26
1 files changed, 23 insertions, 3 deletions
diff --git a/scripts/package-build/linux-kernel/build.py b/scripts/package-build/linux-kernel/build.py
index e73b2519..6cb6f90f 100755
--- a/scripts/package-build/linux-kernel/build.py
+++ b/scripts/package-build/linux-kernel/build.py
@@ -113,12 +113,15 @@ def create_tarball(package_name, source_dir=None):
print(f"I: Failed to create tarball for {package_name}: {e}")
-def build_package(package: dict, dependencies: list) -> None:
+def build_package(package: dict, dependencies: list,
+ linux_kernel_tarball: dict | None = None) -> None:
"""Build a package from the repository
Args:
package (dict): Package information
dependencies (list): List of additional dependencies
+ linux_kernel_tarball (dict | None): If set, successful ``build_kernel`` fills this
+ for a final-stage tarball after all packages complete.
"""
timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
repo_name = package['name']
@@ -135,7 +138,11 @@ def build_package(package: dict, dependencies: list) -> None:
# Execute the build command
if package['build_cmd'] == 'build_kernel':
source_dir = build_kernel(package['kernel_version'])
- create_tarball(f'{package["name"]}-{package["kernel_version"]}', source_dir)
+ if linux_kernel_tarball is not None:
+ linux_kernel_tarball.clear()
+ linux_kernel_tarball['package_name'] = package['name']
+ linux_kernel_tarball['kernel_version'] = package['kernel_version']
+ linux_kernel_tarball['source_dir'] = source_dir
elif package['build_cmd'] == 'build_linux_firmware':
build_linux_firmware(package['commit_id'], package['scm_url'])
create_tarball(f'{package["name"]}-{package["commit_id"]}', f'{package["name"]}')
@@ -293,11 +300,24 @@ if __name__ == '__main__':
# Merge defaults into each package
packages = [merge_dicts(defaults, pkg) for pkg in packages]
+ linux_kernel_tarball: dict = {}
+
for package in packages:
dependencies = package.get('dependencies', {}).get('packages', [])
# Build the package
- build_package(package, dependencies)
+ build_package(package, dependencies, linux_kernel_tarball)
# Copy generated .deb packages to parent directory
copy_packages(Path(package['name']))
+
+ if linux_kernel_tarball:
+ source_dir = linux_kernel_tarball['source_dir']
+ trusted_keys = f'{source_dir}/trusted_keys.pem'
+ if os.path.exists(trusted_keys):
+ os.remove(trusted_keys)
+ run(['make', '-C', source_dir, 'mrproper'], check=True)
+ create_tarball(
+ f'{linux_kernel_tarball["package_name"]}-{linux_kernel_tarball["kernel_version"]}',
+ source_dir,
+ )