Skip to content
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

Add alternative source directory option for OSAL implementations #450

Closed
jphickey opened this issue May 8, 2020 · 2 comments · Fixed by #468 or #482
Closed

Add alternative source directory option for OSAL implementations #450

jphickey opened this issue May 8, 2020 · 2 comments · Fixed by #468 or #482
Assignees
Milestone

Comments

@jphickey
Copy link
Contributor

jphickey commented May 8, 2020

Is your feature request related to a problem? Please describe.
The OSAL build script always looks for BSP implementations in:
${OSAL_SOURCE_DIR}/src/bsp/${OSAL_SYSTEM_BSPTYPE}
Likewise it always looks for OS implementations in:
${OSAL_SOURCE_DIR}/src/os/${OSAL_SYSTEM_OSTYPE}

This presents a challenge to for a user with a custom OS/BSP implementation not within the mainline OSAL source tree, but wishes to use the github repo directly.

Describe the solution you'd like
It should be possible to provide an external directory that the OSAL build can use.

Describe alternatives you've considered
Create an OSAL fork or "git subtree" to assemble a full CFE/CFS repo, which allows one to add custom packages or patches they need.

Additional context
The internal API between the BSP/OS implementation components is not stabilized like the public API is, and can change any time.

If directly using a "master" branch from github in conjunction with a locally-controlled implementation module, users may experience frequent breakage, as the component interface can change any time rendering it incompatible with their local version.

In contrast, although the fork/subtree approach does have a similar issue, it doesn't happen "automatically" - it requires a specific user action to pull and merge the new "master" so it creates a buffer that avoids unsolicited breakage.

This feature should come with a big disclaimer that says its for debug/development only, not to use it in production.

Requester Info
Joseph Hickey, Vantage Systems, Inc.

@jphickey jphickey self-assigned this May 8, 2020
@skliper skliper added this to the 5.1.0 milestone May 8, 2020
@skliper
Copy link
Contributor

skliper commented May 8, 2020

Actually... is it possible now by defining OSAL_SYSTEM_BSPTYPE as something like ../../../myosalbsp? Not exactly sanctioned and likely not the original intent... but doesn't require any changes in OSAL?

@skliper
Copy link
Contributor

skliper commented May 8, 2020

fragile obviously (hackish)... but so is depending on internal APIs

jphickey added a commit to jphickey/osal that referenced this issue May 16, 2020
If the "OSAL_EXT_SOURCE_DIR" cache variable is set, this location
will be checked first for a BSP/OS implementation layer.  This can
point to an out-of-tree implementation layer if necessary.

However it is discouraged from actually doing this as there is no
attempt at API stability at the low level implementation layer.
astrogeco added a commit that referenced this issue May 26, 2020
Fix #450, add external source directory for OS/BSP
jphickey pushed a commit to jphickey/osal that referenced this issue Aug 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants