Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-114537

linking of QtNetwork against GSSAPI fails on macOS with CMAKE_FIND_FRAMEWORK=LAST

    XMLWordPrintable

Details

    • macOS
    • 1bf144ba7 (dev), 3f6e0f5b6 (6.5), 41670375f (6.6)

    Description

      While trying to build the spack package qt-base with variant network (i.e. qtbase+network) I ran into the same issue that was reported against vcpkg: linking lib/QtNetwork.framework/Versions/A/QtNetwork fails with ___gss_c_nt_hostbased_service_oid_desc being unresolved in qauthenticator.cpp.

       

      Similar to vcpkg, spack also sets CMAKE_FIND_FRAMEWORK=LAST. Because of this GSSAPI_LIBRARIES in FindGSSAPI.cmake will end up with libgssapi_krb5 instead of the GSS framework. But the results from this FindGSSAPI.cmake are only partially honored on macOS:
      with Q_OS_DARWIN the code in src/network/kernel/qauthenticator.cpp includes <GSS/GSS.h> which is the header from the GSS framework, no matter what the contents of GSSAPI_INCLUDES, but linking will be done against $GSSAPI_LIBRARIES. Hence the inconsistency and linker error, if not the GSS framework is picked up.

       

      The patch from https://codereview.qt-project.org/c/qt/qtbase/+/478396 addresses this issue only partially, as the conflicting gssapi_krb5 is removed from the list of candidate libraries on APPLE only under the additional condition that Qt is built from vcpkg.

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-114537
          # Subject Branch Project Status CR V

          Activity

            People

              mrmsdbdl Amir Masoud Abdol
              aumuell Martin Aumueller
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes