-
Notifications
You must be signed in to change notification settings - Fork 1
Switch to using GNUInstallDirs as defaults #3
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
Conversation
|
The |
Signed-off-by: Cristian Le <[email protected]>
1186bcb to
374300b
Compare
|
Cool, let me know if you encounter any fallouts |
|
The change in the Example of error produced by the -- Requires StdAir-1.00.0
CMake Error at /usr/lib64/cmake/stdair/stdair-config.cmake:19 (include):
include could not find requested file:
lib64/cmake/stdair/stdair-library-depends.cmake
Call Stack (most recent call first):
config/project_config_embeddable.cmake:1104 (find_package)
config/project_config_embeddable.cmake:379 (get_stdair)
CMakeLists.txt:51 (get_external_libs)And the content of the ...
set (STDAIR_LIBRARY_DIRS "lib64")
set (STDAIR_SAMPLE_DIR "share/stdair/samples")
# Our library dependencies (contains definitions for IMPORTED targets)
include ("lib64/cmake/stdair/stdair-library-depends.cmake")As a comparison, the ...
set (AIRRAC_LIBRARY_DIRS "/usr/lib64")
# Library dependencies for AirRAC (contains definitions for the AirRAC IMPORTED
# targets)
include ("/usr/share/airrac/CMake/airrac-library-depends.cmake")The paths are absolute here, and CMake can therefore find the support files. Was it intentional to migrate to relative paths in the CMake support file, and if yes, do you know how to fix the error reported by packages depending on it? |
That is weird, it should be prefixing the paths with |
Note that I had forgotten the With the 1.00.19, it seems to fix the issue: Line 17 in a147e24
|
That's not ideal because it makes it non-relocatable, which is needed for some environments like PyPI or conda. I will investigate tomorrow when I'll be able to spin up a container and see what's going on. I checked for name clashes and didn't find any, so my only other guess is that maybe there's an absolute path expansion that tricks it up. Here is the documentation page, and you could try adding |
|
|
I just found out that there is another issue, this time seemingly due to the relocation of the SOCI libraries into a dedicated sub-directory, namely ldd -d -r /usr/lib64/libstdair.so
...
libboost_filesystem.so.1.83.0 => /lib64/libboost_filesystem.so.1.83.0 (0x0000736eb429b000)
libsoci_core.so.4 => not found
libsoci_mysql.so.4 => not found
...
ls -lFh /usr/lib64/soci/libsoci_core.so.4*
lrwxrwxrwx 1 root root 21 Mar 24 01:00 /usr/lib64/soci/libsoci_core.so.4 -> libsoci_core.so.4.1.0*
-rwxr-xr-x 1 root root 446K Mar 24 01:00 /usr/lib64/soci/libsoci_core.so.4.1.0*
ls -lFh /usr/lib64/soci/libsoci_mysql.so.4*
lrwxrwxrwx 1 root root 22 Mar 24 01:00 /usr/lib64/soci/libsoci_mysql.so.4 -> libsoci_mysql.so.4.1.0*
-rwxr-xr-x 1 root root 127K Mar 24 01:00 /usr/lib64/soci/libsoci_mysql.so.4.1.0*Of course, I could set the # Update the list of dependencies for the project
list (APPEND PROJ_DEP_LIBS_FOR_LIB ${SOCI_LIBRARIES} ${SOCIMYSQL_LIBRARIES})If you understand/see where the problem could be, do not hesitate. I will also check on the SOCI side => SOCI/soci#1222 |
|
Rpaths are stripped by default at installation, but you can use It depends pretty much on the environment, |
|
@da115115 Can you share with me more on your setup, I have tried in a container with CMake 3.31 and 3.15 1, and in both cases it expands the I'll check up on why Edit: It seems that Edit2: Oh, I'm blind there was a Footnotes
|
- Add the ``${PACKAGE_NAME}_SAMPLE_DIR` to `PATH_VARS`
- fix the `include` in stdair-config.cmake
Signed-off-by: Cristian Le <[email protected]>
My configuration is a Fedora Rawhide, with CMake 3.31. Note that the following (latest) configuration seems to work well: Line 18 in a147e24
|
Note: this is not ideal because - a bundled `FindBoost.cmake` is used instead of the CMake provided one, and it can break due to the policy set - the variable `BOOST_REQUIRED_COMPONENTS` is defined in an undefined scope Signed-off-by: Cristian Le <[email protected]>
|
With respect to the |
Not quite, if you run (I have edited
Isn't it
Yes, I found that issue as well and fixed it in 8fce616.
|
Signed-off-by: Cristian Le <[email protected]>
Ok, thanks for the detailed explanations and examples of use cases, I now get it better! For the sample directory, yes, it is certainly specified before, along with the other directories. So, I guess we should also use the same prefix variable. |
|
Could you apply 8fce616 to the main branch? |
|
|
How did these changes go so far? Any hitches? I was looking at the CMake change proposal progress and I think these ones are resolved? Can you share me a list of packages that I need to update (you should also have access to do those updates if you have the time)? |
|
Thanks Cristian! I've just upgraded SOCI to the latest version (4.1.2): https://bodhi.fedoraproject.org/updates/FEDORA-2025-796235f430 |
|
All my packages depending on the MySQL client library have just been rebuilt on Fedora Rawhide. More specifically: Just for reference, the dependency graph is derived from the MetaSim's Rake build specification. Many thanks for your valuable contribution and support throughout that migration! |
|
Thanks, I'll try to check it early this week. Btw, I can help you setup a packit workflow for all of these packages which would build (and test) each commit of the packages against any distro available on copr. For reference it would roughly look like this project with:
The main benefit over docker containers is that it does not require to rebuild the container every time the dependencies change, and will allow you to keep up to date with Fedora |
Yes, that would be lovely! Thanks for the proposal! Note that I cannot spend much time on it, as my daily job keeps me very busy these days. But I appreciate your help and will strive to make that migration happen. |
|
My pleasure. I will make PRs for Other than that I can work on it asynchronously when I have a few minutes of procrastination :) |


Cherry-picked from airsim/rmol#2