-
Notifications
You must be signed in to change notification settings - Fork 37
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
Proposal: integrate external libraries as subproject #432
Conversation
Pipeline is currently failing due to missing C++ dependencies required for the |
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.
seems nice improve, just some questions
b9bcc2e
to
babdc1e
Compare
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.
As discussed on the sync call, the build systems expect that all the required sources are part of the source code RPM. So, we cannot have meson download the files during build. Instead we should look int integrating with git-submodules
f3b34e1
to
6bff112
Compare
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.
Minor nits, but otherwise LGTM
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.
This approach seems to me less clear than having copies of those projects directly in this project and what's worse for hashmap we need additional repo to have meson.build for the project.
But anyway if this is the way we want to proceed, please don't forget to adapt https://github.com/containers/hirte/tree/main/LICENSES/README.md, we need to mention correctly licenses of those subprojects
It is the first time for me using git submodules and its something one has to get used to, I think. But after a while, I think its even more clear than using an inline version - you have the reference to the exact location (incl. revision) to the included project. In the inlined version it is not directly visible that
I agree, that is not good and is rather a workaround - as mentioned in one of the comments above, I created a request in the original repo of
Oh, completely missed that directory. Updated it. Could you have another look if the wording etc. is ok? @mwperina |
4c1eeb2
to
8f7aa51
Compare
LGTM once the licensing reference discussion is resolved |
8f7aa51
to
7dd84ae
Compare
Instead of inlining external libraries it is benefictial to dynamically integrate them to get the latest bugfixes etc. Git submodules provides a mechanism to define these dependencies and use a specific version of it. Signed-off-by: Michael Engel <[email protected]>
Integrate the git submodules as subproject in the meson.build as static library and pass down default values for specific meson options to the subprojects. In addition, the other tooling like clang-tidy script needed to be adjusted to include the libraries. Signed-off-by: Michael Engel <[email protected]>
7dd84ae
to
37acc5f
Compare
@engelmi great stuff! LGTM |
After some recent changes (for example moving external libraries to [subprojects](eclipse-bluechi#432)) we were missing several dependencies required to build the project successfully. Signed-off-by: Martin Perina <[email protected]>
* Add missing dependencies to README.developer.md After some recent changes (for example moving external libraries to [subprojects](#432)) we were missing several dependencies required to build the project successfully. Signed-off-by: Martin Perina <[email protected]> * Fix RPM package building documentation 1. Adds installation of required packages for RPM build 2. Updates the part around RPM build customization more clear Signed-off-by: Martin Perina <[email protected]> * Make building python3-bluechi conditional For some build targets we don't want python3-bluechi to be built, so this patch add `--without python` parameter to rpm-build command to disable it. Fixes: #396 Signed-off-by: Martin Perina <[email protected]> --------- Signed-off-by: Martin Perina <[email protected]>
This PR is a based on the question in #430 and a proposal how to solve it.
Instead of inlining external libraries it is to dynamically integrate them to get the latest bugfixes etc.
The basic idea to achieve this is to fetch the external (git) project and integrate it into the hirte project using subproject(). Two mechanisms have been evaluated to fetch the git repos:
Mesons wrap system integrates nicely in our current build tooling. However, since the projects get downloaded during meson setup (and is never committed) there are uncommitted changes which will not be used when building the srpm. Git submodules, on the other hand, don't have that issue. On
git clone
its necessary to fetch those as well, but they are "part" of the respective commit.