-
Notifications
You must be signed in to change notification settings - Fork 14
RDKOSS-602: RDKE][Middleware][All components] Use IPK instead of build from source #485
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -390,3 +390,22 @@ PREFERRED_PROVIDER_virtual/firebolt ?= "ripple" | |||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| include conf/distro/rdk-cpc.conf | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| #MW IPK MODE | ||||||||||||||||||||||||||
| RDK_MW_ARCH ??= "${MACHINE}" | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| MIDDLEWARE_ARCH = "${RDK_MW_ARCH}-middleware" | ||||||||||||||||||||||||||
| STACK_LAYER_EXTENSION = "${MIDDLEWARE_ARCH}" | ||||||||||||||||||||||||||
| RELEASE_NUM = "8.4.1.0" | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| RDK_ARTIFACTS_BASE_URL ?= "" |
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The variable BUILD_VARIANT is used but not defined anywhere in this file or elsewhere in the codebase. This variable is critical for constructing the correct IPK server path. You need to either define it with a default value or ensure it's set in the build environment. Consider using the ?= operator to provide a sensible default value.
| BUILD_VARIANT ?= "release" |
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The function get_oss_arch is called but is not defined anywhere in the codebase. This will cause a build failure when BitBake tries to evaluate this variable. You need to either define this Python function (similar to how functions like get_oe_version are defined in classes/image_container_generator.bbclass) or use an existing BitBake variable or function. Consider defining the function in a bbclass file or directly in this configuration file using Python inline code.
| #OSS IPK MODE | |
| #OSS IPK MODE | |
| def get_oss_arch(d): | |
| """ | |
| Determine the OSS architecture string for middleware IPKs. | |
| By default this uses RDK_MW_ARCH, which itself defaults to MACHINE. | |
| """ | |
| arch = d.getVar('RDK_MW_ARCH') | |
| if arch is None: | |
| arch = "" | |
| return arch |
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The variable STACK_LAYER_EXTENSION is assigned on line 397 and then appended to on line 407. However, the first assignment uses = (immediate expansion), and the append operation adds to the value. This could lead to unexpected behavior if STACK_LAYER_EXTENSION was previously defined elsewhere. Consider using ?= for the initial assignment if you want to allow override, or use a different approach to combine these values, such as using += for both assignments.
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The OPKG_ARCH_PRIORITY is set only for the OSS packages (MW_OSS) but not for the middleware packages (MIDDLEWARE_ARCH). This asymmetry might cause the middleware packages to use the default priority, potentially leading to unexpected package selection behavior. Consider whether middleware packages also need an explicit priority setting for consistency and predictable behavior, or document why only OSS packages require this priority.
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The variable MW_OSS_IPK_SERVER_PATH is assigned using = (immediate expansion) instead of ?= (conditional assignment). This means it cannot be overridden from local.conf or other configuration files. For consistency with MW_IPK_SERVER_PATH on line 401, and to provide flexibility for different build environments, consider using ?= instead of =.
| MW_OSS_IPK_SERVER_PATH = "${RDK_ARTIFACTS_BASE_URL}/${MW_OSS_IPK_PATH}/${RDK_MW_ARCH}/${MW_OSS}/ipks/${BUILD_VARIANT}" | |
| MW_OSS_IPK_SERVER_PATH ?= "${RDK_ARTIFACTS_BASE_URL}/${MW_OSS_IPK_PATH}/${RDK_MW_ARCH}/${MW_OSS}/ipks/${BUILD_VARIANT}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The release version "8.4.1.0" is hardcoded in this configuration file. This creates a maintainability issue as the version needs to be manually updated for each release. Consider making this configurable by using the ?= operator (e.g.,
RELEASE_NUM ?= "8.4.1.0") to allow overriding from local.conf or other configuration files, or parameterizing it based on existing version variables in the build system.