|
118 | 118 | . "${BUILD_LIBRARY_DIR}/board_options.sh" || exit 1 |
119 | 119 | . "${BUILD_LIBRARY_DIR}/test_image_content.sh" || exit 1 |
120 | 120 | . "${BUILD_LIBRARY_DIR}/extra_sysexts.sh" || exit 1 |
| 121 | +. "${BUILD_LIBRARY_DIR}/oem_sysexts.sh" || exit 1 |
121 | 122 |
|
122 | 123 | # Setup all the emerge command/flags. |
123 | 124 | EMERGE_FLAGS=( --update --deep --newuse --verbose --backtrack=30 --select ) |
|
288 | 289 | export KBUILD_BUILD_USER="${BUILD_USER:-build}" |
289 | 290 | export KBUILD_BUILD_HOST="${BUILD_HOST:-pony-truck.infra.kinvolk.io}" |
290 | 291 |
|
291 | | -info "Merging board packages now" |
292 | | -sudo -E "${EMERGE_CMD[@]}" "${EMERGE_FLAGS[@]}" "$@" |
293 | | - |
294 | | -info "Merging sysext packages now" |
295 | | -for sysext in "${EXTRA_SYSEXTS[@]}"; do |
296 | | - IFS="|" read -r SYSEXT_NAME PACKAGE_ATOMS USEFLAGS ARCHES <<< "$sysext" |
297 | | - |
298 | | - arch_array=("${ARCHES//,/ }") |
299 | | - if [[ -n $ARCHES ]]; then |
300 | | - should_skip=1 |
301 | | - for arch in "${arch_array[@]}"; do |
302 | | - if [[ $arch == "$ARCH" ]]; then |
303 | | - should_skip=0 |
| 292 | +# Build sysext packages from an array of sysext definitions. |
| 293 | +# Usage: build_sysext_packages "description" "${SYSEXT_ARRAY[@]}" |
| 294 | +# Array format: "name|packages|useflags|arches" |
| 295 | +build_sysext_packages() { |
| 296 | + local description="$1" |
| 297 | + shift |
| 298 | + local sysexts=("$@") |
| 299 | + |
| 300 | + info "Merging ${description} packages now" |
| 301 | + for sysext in "${sysexts[@]}"; do |
| 302 | + local sysext_name package_atoms useflags arches |
| 303 | + IFS="|" read -r sysext_name package_atoms useflags arches <<< "$sysext" |
| 304 | + |
| 305 | + local arch_array=(${arches//,/ }) |
| 306 | + if [[ -n $arches ]]; then |
| 307 | + local should_skip=1 |
| 308 | + for arch in "${arch_array[@]}"; do |
| 309 | + if [[ $arch == "$ARCH" ]]; then |
| 310 | + should_skip=0 |
| 311 | + fi |
| 312 | + done |
| 313 | + if [[ $should_skip -eq 1 ]]; then |
| 314 | + continue |
304 | 315 | fi |
305 | | - done |
306 | | - if [[ $should_skip -eq 1 ]]; then |
307 | | - continue |
308 | 316 | fi |
309 | | - fi |
310 | | - |
311 | 317 |
|
312 | | - info "Building packages for $SYSEXT_NAME sysext with USE=$USEFLAGS" |
313 | | - IFS=, |
314 | | - for package in $PACKAGE_ATOMS; do |
315 | | - # --buildpkgonly does not install dependencies, so we install them |
316 | | - # separately before building the binary package |
317 | | - sudo --preserve-env=MODULES_SIGN_KEY,MODULES_SIGN_CERT \ |
318 | | - env USE="$USEFLAGS" FEATURES="-ebuild-locks binpkg-multi-instance" "${EMERGE_CMD[@]}" \ |
319 | | - "${EMERGE_FLAGS[@]}" \ |
320 | | - --quiet \ |
321 | | - --onlydeps \ |
322 | | - --binpkg-respect-use=y \ |
323 | | - "${package}" |
324 | | - |
325 | | - sudo --preserve-env=MODULES_SIGN_KEY,MODULES_SIGN_CERT \ |
326 | | - env USE="$USEFLAGS" FEATURES="-ebuild-locks binpkg-multi-instance" "${EMERGE_CMD[@]}" \ |
327 | | - "${EMERGE_FLAGS[@]}" \ |
328 | | - --quiet \ |
329 | | - --buildpkgonly \ |
330 | | - --binpkg-respect-use=y \ |
331 | | - "${package}" |
| 318 | + info "Building packages for $sysext_name sysext with USE=$useflags" |
| 319 | + IFS=, |
| 320 | + for package in $package_atoms; do |
| 321 | + # --buildpkgonly does not install dependencies, so we install them |
| 322 | + # separately before building the binary package |
| 323 | + sudo --preserve-env=MODULES_SIGN_KEY,MODULES_SIGN_CERT \ |
| 324 | + env USE="$useflags" FEATURES="-ebuild-locks binpkg-multi-instance" "${EMERGE_CMD[@]}" \ |
| 325 | + "${EMERGE_FLAGS[@]}" \ |
| 326 | + --quiet \ |
| 327 | + --onlydeps \ |
| 328 | + --binpkg-respect-use=y \ |
| 329 | + "${package}" |
| 330 | + |
| 331 | + sudo --preserve-env=MODULES_SIGN_KEY,MODULES_SIGN_CERT \ |
| 332 | + env USE="$useflags" FEATURES="-ebuild-locks binpkg-multi-instance" "${EMERGE_CMD[@]}" \ |
| 333 | + "${EMERGE_FLAGS[@]}" \ |
| 334 | + --quiet \ |
| 335 | + --buildpkgonly \ |
| 336 | + --binpkg-respect-use=y \ |
| 337 | + "${package}" |
| 338 | + done |
| 339 | + unset IFS |
332 | 340 | done |
333 | | - unset IFS |
334 | | -done |
| 341 | +} |
| 342 | + |
| 343 | +info "Merging board packages now" |
| 344 | +sudo -E "${EMERGE_CMD[@]}" "${EMERGE_FLAGS[@]}" "$@" |
| 345 | + |
| 346 | +build_sysext_packages "extra sysexts" "${EXTRA_SYSEXTS[@]}" |
| 347 | +build_sysext_packages "OEM sysexts" "${OEM_SYSEXTS[@]}" |
335 | 348 |
|
336 | 349 | info "Removing obsolete packages" |
337 | 350 | # The return value of emerge is not clearly reliable. It may fail with |
|
0 commit comments