-
Notifications
You must be signed in to change notification settings - Fork 119
cmake-tidy-mircommon #4603
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
cmake-tidy-mircommon #4603
Conversation
|
CI isn't happy, I suspect it's these lines since Lines 69 to 72 in 57f9b45
|
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.
Pull request overview
This PR restructures the mircommon component by consolidating internal development headers into the main libmircommon-dev package and reorganizing the build system to use modular OBJECT libraries instead of a monolithic source list approach.
Key changes:
- Removed the separate
libmircommon-internal-devpackage, merging it intolibmircommon-dev - Refactored CMake build to use OBJECT libraries (
mircommondispatch,mircommoninput) for better modularity - Moved internal headers (e.g.,
event_private.h,signal_blocker.h) from public includes to source-local includes
Reviewed changes
Copilot reviewed 14 out of 16 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/common/thread/CMakeLists.txt | Removed signal_blocker.cpp from mirsharedthread (moved to dispatch) |
| src/common/mircommon-internal.pc.in | Deleted obsolete pkg-config file for removed internal package |
| src/common/input/xkb_mapper.cpp | Updated include path for event_private.h to relative path |
| src/common/input/input_event.cpp | Updated include path for event_private.h to relative path |
| src/common/input/CMakeLists.txt | Created new mircommoninput OBJECT library |
| src/common/events/event_builders.cpp | Updated include path for event_private.h to relative path |
| src/common/event_printer.cpp | Updated include path for event_private.h to relative path |
| src/common/event.cpp | Updated include path for event_private.h to relative path |
| src/common/dispatch/threaded_dispatcher.cpp | Updated include path for signal_blocker.h to relative path |
| src/common/dispatch/signal_blocker.cpp | Updated include path for signal_blocker.h to relative path |
| src/common/dispatch/CMakeLists.txt | Created mircommondispatch OBJECT library and moved signal_blocker.cpp here |
| src/common/CMakeLists.txt | Refactored to link OBJECT libraries instead of accumulating source lists |
| debian/libmircommon-internal-dev.install | Deleted install manifest for removed package |
| debian/control | Converted libmircommon-internal-dev to transitional package |
|
Hmm there seems to be a problem with installing On armhf On arm64 ... I don't think it is related |
debian/control
Outdated
| libmircommon-internal-dev (<< 2.25) | ||
| Replaces: mircommon-dev (<< 0.6), | ||
| libmircommon-internal-dev (<< 2.25) | ||
| Provides: libmircommon-internal-dev |
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.
Does this provides line make sense? I know the intent is to get rid of the libmircommon-internal-dev package, but libmircommon-dev does not seem to provide any of the functionality of the other package (pkg-config files, headers).
Would the Breaks / Replaces be enough on their own?
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.
|
@AlanGriffiths I've opened a new pull request, #4606, to work on those changes. Once the pull request is ready, I'll request review from you. |
The Provides field is not appropriate here because libmircommon-dev doesn't actually provide the same pkg-config files (mircommon-internal.pc) or header directory (mircommon-internal/) that libmircommon-internal-dev used to provide. The functionality has been merged/renamed into mircommon, not duplicated. The Breaks and Replaces fields are sufficient for handling the package transition, along with the transitional package that depends on libmircommon-dev. Co-authored-by: AlanGriffiths <9048879+AlanGriffiths@users.noreply.github.com>
Related: #4603 ## What's new? Removed `Provides: libmircommon-internal-dev` from the `libmircommon-dev` package definition in `debian/control`. The `Provides` field is semantically incorrect here because `libmircommon-dev` does not provide the same files that `libmircommon-internal-dev` installed (`mircommon-internal.pc`, `mircommon-internal/` headers). The functionality was merged/renamed into `mircommon`, not duplicated. `Breaks` and `Replaces` are sufficient for the package transition, along with the transitional package depending on `libmircommon-dev (>= 2.26)`. ## How to test Debian package metadata change only - no functional testing required. ## Checklist - [x] Tests added and pass - [x] Adequate documentation added <!-- START COPILOT CODING AGENT TIPS --> --- 💬 We'd love your input! Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey).
RAOF
left a comment
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.
We should just remove the libmircommon-internal-dev package; it serves no purpose. (We do need to keep the Breaks/Replaces so that upgrades go cleanly)
Apart from that, looks good.
TICS Quality Gate✔️ Passedmir
|
jhenstridge
left a comment
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.
Looks good!
More tidy up of mircommon structure:
libmircommon-internal-devpackage, merging it intolibmircommon-devmircommondispatch,mircommoninput) for better modularityevent_private.h,signal_blocker.h) from public includes to source-local includes