-
Notifications
You must be signed in to change notification settings - Fork 985
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
Fix pkgconfig name collision on Windows #14428
base: release/2.0
Are you sure you want to change the base?
Fix pkgconfig name collision on Windows #14428
Conversation
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.
Thanks very much for the contribution @domin144
It would be great to start the PR with a failing "red" test failing for this bug, and then see it fixed with this contributed fix. Tests are necessary anyway, so having them from the start help a lot understanding the fixes.
This fix is related to conan-io#10341 The previous fix did not take into account cases insensitive filesystems. As a result the issue was still present on Windows. OpenEXR is an example of affected recipe.
3ecaec9
to
80c00bd
Compare
I am having some trouble running the tests. For now I wrote some test, which tries to reproduce an example I tried manually. I did not run the test though. The important lines are:
This is where conflicting When I run the example, I had to add BTW: where do you normally get Please bear with me. This is all new to me. I did not use conan before and I don't have much experience with python. I usually don't develop on windows also and hoped conan will make a temporary transition easier for me. I assume you have a working setup, where you are able to run test. I would appreciate, if you tried to run this test and let me know if it passes with the fix and fails without it. |
yes, it is not possible to download things from ConanCenter in testing. They need to be installed in the machine, and injected via
there is no standard location, this is why we are using the
Yes, thanks very much for your contribution and putting the effort! 🙂 I think @franramirez688 can help the following days with the information you provided in your comment and draft some test that covers it. |
Hi @domin144 , Thanks for raising this problem. I'm not sure if this is the best way to proceed with this error. Let me talk to the team because I'd like a more generic solution. This one sounds like a breaking change for systems with case-sensitive file systems, so let's see if we could get another approach or even if this is the best one. |
Hi @franramirez688, I think the OpenEXR recipe tried to reproduce the pc file name, provided by OpenEXR itself (https://github.com/AcademySoftwareFoundation/openexr/blob/d688d05d99dc54f6d928c4e6d6ceee53b3368267/cmake/OpenEXR.pc.in). Any application prepared to use the original With the current, case sensitive match, we have a discrepancy between platforms: on case sensitive file systems two files are created, on case insensitive filesystems the first one is overwritten and only second is available. Case ignoring match makes the procedure consistent. Anyway, I checked the |
Hi @domin144 , Thanks for your feedback! We were checking this issue, and we think that the best approach would have these two points:
We still think that this change would bring breaking changes for several recipes so we prefer to implement those ones instead, and keep that check as case-sensitive. |
Great! |
Changelog: (Bugfix): Fix pkgconfig name collision on Windows
This fix is related to #10341. The previous fix did not take into account cases insensitive filesystems. As a result the issue was still present on Windows. OpenEXR 2.x is an example of affected recipe. The "OpenEXR.pc" file for the "openexr_ilmimf" component was overwritten by "openexr.pc" created based on package name.
develop
branch, documenting this one.