Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-3097

cmake targets unconditionally depend on optional libraries

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9.3
    • Component/s: None
    • Labels:
      None
    • Environment:

      Bug found on Linux Ubuntu 14.10, but it should be present anywhere.

    • Patch Info:
      Patch Available

      Description

      if the optional libraries are not installed, the default cmake build fails.

      How to reproduce

      Case 1

      • "cmake -D WITH_LIBEVENT=OFF" (or just "cmake" on a system without libevent)
      • make
        Linking CXX executable ../../bin/StressTest
        /usr/bin/ld: cannot find -lthriftnb
        

      Case 2

      • "cmake" on a system with Python installed but not package python-dev
      • make
      Building Python library
      /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'use_2to3'
        warnings.warn(msg)
      running build
      running build_py
      running build_ext
      building 'thrift.protocol.fastbinary' extension
      x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c src/protocol/fastbinary.c -o build/temp.linux-x86_64-2.7/src/protocol/fastbinary.o
      src/protocol/fastbinary.c:20:20: fatal error: Python.h: No such file or directory
       #include <Python.h>
      

      case 3

      After installing libevent, on a system without ZLIB:

      Linking CXX executable ../../bin/StressTestNonBlocking
      /usr/bin/ld: cannot find -lthriftz
      collect2: error: ld returned 1 exit status
      

      case 4

      After installing ZLIB, either on a system without OpenSSL or on Ubuntu 14.10, where OpenSSL is installed but NOT found (another bug?)

      Building CXX object test/cpp/CMakeFiles/TestClient.dir/src/TestClient.cpp.o
      In file included from /home/marco/src/thrift.marco.hg/test/cpp/src/TestClient.cpp:30:0:
      /home/marco/src/thrift.marco.hg/lib/cpp/src/thrift/transport/TSSLSocket.h:25:25: fatal error: openssl/ssl.h: No such file or directory
       #include <openssl/ssl.h>
      

      https://github.com/apache/thrift/pull/443

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              marco.molteni Marco Molteni
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: