-
Notifications
You must be signed in to change notification settings - Fork 6.9k
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
Introduce p99 #26799
Comments
To clarify: the difference between 1 and 2 is whether And if it is a module a question is whether it provides all of p99, or just the subdirectory with the headers we need? Some thoughts:
My original proposal suggested adding P99 (in its entirety) as an external module; converting the implementation of corresponding parts of I would like that to be one of the options on the table. |
Correct
That is really option number 1, albeit a bit more detailed. I will try to make it clearer in the issue description. EDIT: I've now done so. |
Making this a module would make p99 the first "mandatory" module in all Zephyr configurations, since util.h provides core macros like (I know things like vendor HALs are mandatory for driver shims around them, but that's not mandatory for all targets.) Do we want to have such a thing? I obviously use west for everything, so I don't object from a personal perspective, but I would be curious if @aescolar or others who don't use west have any concerns. I also confess I am a bit underwhelmed by this response: How can we be a bit more confident we are not replacing one piece of code with dubious provenance with another? |
@galak @MaureenHelm @nashif would very much appreciate your input on this matter. |
What's the minimal set of files we need from p99? |
I don't think that can be answered without going through
There are others that don't match existing capability but might be useful, e.g. p99_block, but we can ignore them for now. |
Still relevant? |
Depends how much we care about problematic licensing of in-tree content taken from other sources. But the solution path I prefer didn't get support, and I don't think anybody else will be doing anything about it. So we could just close this. |
Let's close this then but then I suggest that @nordic-krch picks #26299 up again and we extract what we need from p99 into |
Proposal to introduce p99, a library for preprocessor functions, as a separate module in Zephyr or, alternatively, in the main tree given the criticality of the code it contains (i.e. it would be used by nearly every single subsystem in Zephyr).
Background:
#26299 tried to introduce a new implementation of the
IS_EMPTY
macro, but the one that was found was not suitable licensed, since it was part of p99 which, until very recently, was being released under the Zephyr-incompatible QPL license.The main author of p99, @gustedt, offered to move the p99 codebase to a new location and relicense it under the Apache 2.0 license, and proceeded to do so.
Options available:
sys/util.h
with p99 and include p99 as a Zephyr module, removing (via deprecation) any functionality insys/util.h
that is already part of p99. This will have implications since p99 will then become critical to build any Zephyr applicationsys/util.h
with p99 and include p99 in-tree, removing (via deprecation) any functionality insys/util.h
that is already part of p99. Since p99 is now Apache-2.0 licensed, this is an optionsys/util.h
or in separate, original filesI'd like to discuss the approach to be taken here in order to make sure that we both ensure that Zephyr is robust even without modules, and we are able to contribute back changes to p99 upstream.
The text was updated successfully, but these errors were encountered: