Search code examples
versionlibcurl

curl vs libcurl version


cURL project has different versions for curl and libcurl. As an example, if you download 8.2.1, the build will produce libcurl.so.4.8.0

Is there any mapping where I can match a libcurl.so with the corresponding curl version?

I have read the Release Table https://curl.se/docs/releases.html


Solution

  • SO library version is defined in /lib/CMakeLists.txt:82-83

      math(EXPR CMAKESONAME "${VERSIONCHANGE} - ${VERSIONDEL}")      # 4
      set(CMAKEVERSION "${CMAKESONAME}.${VERSIONDEL}.${VERSIONADD}") # 4.8.0
    

    It's assigned to the target shared library in /lib/CMakeLists.txt:210-211

        set_target_properties(${LIB_SHARED} PROPERTIES
          VERSION ${CMAKEVERSION} SOVERSION ${CMAKESONAME})
    

    The used values are defined in /lib/Makefile.soname:25-27

    VERSIONCHANGE=12
    VERSIONADD=0
    VERSIONDEL=8
    

    4.8.0 is the ABI version, not the curl version. Any application that requires libcurl 4.8.0 or newer will work with libcurl.so.4.8.0 of curl 8.2.1. You should not change 4.8.0 to 8.2.1.