Conversation
|
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
…5.11.01.15.03.42 Other tools: - conda-build 25.9.0 - rattler-build 0.49.0 - rattler-build-conda-compat 1.4.9 Updated to fix cmake-min fail and enable cmake for unix
Updated CMake configuration to set minimum policy version.
|
@mariusvniekerk @xhochy this is a polite ping, maybe it got burried - would love your feedback on this, thank you! :) |
|
Did you do the checks described in https://conda-forge.org/docs/maintainer/knowledge_base/#moving-from-an-autotools-build-to-a-cmake-build ? Often moving from autotools to cmake breaks the library SONAMEs. |
|
@xhochy very good point, thank you, indeed I did not see that bullet-point. While I can confirm locally that SONAME is the same on linux, the Name of the symbol version seems to change, plus more symbols being exposed. DetailsVersion symbols section '.gnu.version' contains 121 entries:
Addr: 0x0000000000001ee8 Offset: 0x00001ee8 Link: 3 (.dynsym)
000: 0 (*local*) 3 (GLIBC_2.3.4) 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5)
004: 4 (GLIBC_2.2.5) 1 (*global*) 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5)
008: 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5)
00c: 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5) 5 (GLIBC_2.4) 4 (GLIBC_2.2.5)
010: 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5)
014: 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5)
018: 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5) 1 (*global*)
01c: 6 (GLIBC_2.14) 4 (GLIBC_2.2.5) 3 (GLIBC_2.3.4) 4 (GLIBC_2.2.5)
020: 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5) 1 (*global*)
024: 4 (GLIBC_2.2.5) 4 (GLIBC_2.2.5) 3 (GLIBC_2.3.4) 2 (libjansson.so.4)
028: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
02c: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
030: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
034: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
038: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
03c: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
040: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
044: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
048: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
04c: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
050: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
054: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
058: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
05c: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
060: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
064: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
068: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
06c: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
070: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
074: 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4) 2 (libjansson.so.4)
078: 2 (libjansson.so.4)
Version definition section '.gnu.version_d' contains 2 entries:
Addr: 0x0000000000001fe0 Offset: 0x00001fe0 Link: 4 (.dynstr)
000000: Rev: 1 Flags: BASE Index: 1 Cnt: 1 Name: libjansson.so.4
0x0014: Rev: 1 Flags: none Index: 2 Cnt: 1 Name: libjansson.so.4
Version needs section '.gnu.version_r' contains 1 entry:
Addr: 0x0000000000002010 Offset: 0x00002010 Link: 4 (.dynstr)
000000: Version: 1 File: libc.so.6 Cnt: 4
0x0010: Name: GLIBC_2.14 Flags: none Version: 6
0x0020: Name: GLIBC_2.4 Flags: none Version: 5
0x0030: Name: GLIBC_2.2.5 Flags: none Version: 4
0x0040: Name: GLIBC_2.3.4 Flags: none Version: 3cmake: DetailsI have yet to figure out where this comes from. I don't think this is a problem, but I wanted to point it out. janssonConfig.cmake# janssonConfig.cmake
include_guard(GLOBAL)
if(NOT TARGET jansson::jansson)
find_package(PkgConfig REQUIRED QUIET)
pkg_check_modules(JANSSON REQUIRED jansson)
add_library(jansson::jansson INTERFACE IMPORTED)
set_target_properties(jansson::jansson PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${JANSSON_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${JANSSON_LIBRARIES}"
)
message(STATUS "janssonConfig.cmake shim by conda-forge: created imported target jansson::jansson "
"from pkg-config (${JANSSON_VERSION})")
else()
message(STATUS "janssonConfig.cmake shim: using existing jansson::jansson target")
endif()
set(JANSSON_LIBRARIES "${JANSSON_LIBRARIES}")
set(JANSSON_INCLUDE_DIRS "${JANSSON_INCLUDE_DIRS}")
set(JANSSON_VERSION "${JANSSON_VERSION}")Thanks for you help. |
|
If the symbol version changes than I think this would really result in linker error on library load. Probably adding the cmake-shim is the simpler solution for now. |
|
This is a topic which is still in progress upstream, see akheron/jansson#704 and akheron/jansson#715 . Thanks @xhochy for having a look! |
|
@xhochy would love your review on this, thank you! |
|
Looks good, let's move to CMake once upstream has fixed the issues. |
Hi @conda-forge/jansson !
I'm currently working on bringing libraries to conda-forge, which depend on jansson.
These libraries are set up with
cmake.The jansson build of cf for unix systems uses autotools, hence only
pkg-configfiles are written and put into conda-forge.I now switched the unix build to cmake as well and added a temporary fix for this version for the low cmake minimum version.
Any more input or a merge would be highly appreciated, thanks!
Checklist
0(if the version changed)conda-smithy(Use the phrase@conda-forge-admin, please rerenderin a comment in this PR for automated rerendering)