@@ -113,12 +113,15 @@ def create_tarball(package_name, source_dir=None):
113113 print (f"I: Failed to create tarball for { package_name } : { e } " )
114114
115115
116- def build_package (package : dict , dependencies : list ) -> None :
116+ def build_package (package : dict , dependencies : list ,
117+ linux_kernel_tarball : dict | None = None ) -> None :
117118 """Build a package from the repository
118119
119120 Args:
120121 package (dict): Package information
121122 dependencies (list): List of additional dependencies
123+ linux_kernel_tarball (dict | None): If set, successful ``build_kernel`` fills this
124+ for a final-stage tarball after all packages complete.
122125 """
123126 timestamp = datetime .datetime .now ().strftime ('%Y%m%d%H%M%S' )
124127 repo_name = package ['name' ]
@@ -135,7 +138,11 @@ def build_package(package: dict, dependencies: list) -> None:
135138 # Execute the build command
136139 if package ['build_cmd' ] == 'build_kernel' :
137140 source_dir = build_kernel (package ['kernel_version' ])
138- create_tarball (f'{ package ["name" ]} -{ package ["kernel_version" ]} ' , source_dir )
141+ if linux_kernel_tarball is not None :
142+ linux_kernel_tarball .clear ()
143+ linux_kernel_tarball ['package_name' ] = package ['name' ]
144+ linux_kernel_tarball ['kernel_version' ] = package ['kernel_version' ]
145+ linux_kernel_tarball ['source_dir' ] = source_dir
139146 elif package ['build_cmd' ] == 'build_linux_firmware' :
140147 build_linux_firmware (package ['commit_id' ], package ['scm_url' ])
141148 create_tarball (f'{ package ["name" ]} -{ package ["commit_id" ]} ' , f'{ package ["name" ]} ' )
@@ -293,11 +300,24 @@ def build_nat_rtsp(commit_id, scm_url):
293300 # Merge defaults into each package
294301 packages = [merge_dicts (defaults , pkg ) for pkg in packages ]
295302
303+ linux_kernel_tarball : dict = {}
304+
296305 for package in packages :
297306 dependencies = package .get ('dependencies' , {}).get ('packages' , [])
298307
299308 # Build the package
300- build_package (package , dependencies )
309+ build_package (package , dependencies , linux_kernel_tarball )
301310
302311 # Copy generated .deb packages to parent directory
303312 copy_packages (Path (package ['name' ]))
313+
314+ if linux_kernel_tarball :
315+ source_dir = linux_kernel_tarball ['source_dir' ]
316+ trusted_keys = f'{ source_dir } /trusted_keys.pem'
317+ if os .path .exists (trusted_keys ):
318+ os .remove (trusted_keys )
319+ run (['make' , '-C' , source_dir , 'mrproper' ], check = True )
320+ create_tarball (
321+ f'{ linux_kernel_tarball ["package_name" ]} -{ linux_kernel_tarball ["kernel_version" ]} ' ,
322+ source_dir ,
323+ )
0 commit comments