Skip to content
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

wt: add transitive_headers = True for boost dependency #17615

Closed
wants to merge 5 commits into from

Conversation

pskoko
Copy link
Contributor

@pskoko pskoko commented May 18, 2023

Specify library name and version: wt/all

Boost headers are exposed in public headers of Wt (for example Wt/Http/Client.h -> Wt/AsioWrapper/system_error.hpp -> boost/system/system_error.hpp) so it is necessary to add transitive_header = True for boost dependency.


@CLAassistant
Copy link

CLAassistant commented May 18, 2023

CLA assistant check
All committers have signed the CLA.

@conan-center-bot

This comment has been minimized.

@ghost
Copy link

ghost commented May 18, 2023

I detected other pull requests that are modifying wt/all recipe:

This message is automatically generated by https://github.com/ericLemanissier/conan-center-conflicting-prs so don't hesitate to report issues/improvements there.

@conan-center-bot

This comment has been minimized.

@AbrilRBS
Copy link
Member

Hi @pskoko thanks for your contribution. I have submitted pskoko#1 to fix the missing binary problem for libmysqlclient :)

Add openssl requirement range
@conan-center-bot

This comment has been minimized.

else:
self.requires("boost/1.81.0")
self.requires("boost/1.81.0", transitive_headers = True)
if self.options.connector_http:
self.requires("zlib/1.2.13")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might need transitive_libs or something?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RubenRBS I am not sure for zlib, but errors in failed apple build point out that maybe transitive_libs=True should be added for openssl. On Apple build openssl version range is resolved to 3.1.0 which, unlike 1.1.1t, has zlib as its dependency (unless no_zlib=True is set up), and error messages show that all missing symbols are from libcrypto.a which is from openssl.

Also, by experimenting with using wt as shared library on Linux, I concluded that libunwind also needs transitive libs = True. Without that, linking an executable which uses wt as shared library fails, it prints that some symbols from xz (which is dependency of libunwind) are undefined.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On Windows I managed to get the errors equivalent to the apple build from CI (by setting openssl dependency explictitly to 3.1.0 version, it would always resolve to 1.1.1t): missing zlib from libcrypto.lib (for example: libcrypto.lib(libcrypto-lib-c_zlib.obj) : error LNK2019: unresolved external symbol deflate referenced in function zlib_stateful_compress_block). Adding transitive_libs = True on openssl didn't resolve it.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ❌

Failure in build 7 (e483cd965d82255752f5194267e9f85c2e0427e4):

  • wt/4.7.1@:
    Didn't run or was cancelled before finishing

  • wt/4.8.0@:
    CI failed to create some packages (All logs)

    Logs for packageID b519578a0be8bdea40bcfbc807993fa61b3b1c32:
    [settings]
    arch=x86_64
    build_type=Debug
    compiler=apple-clang
    compiler.libcxx=libc++
    compiler.version=13.0
    os=Macos
    [options]
    wt:shared=True
    
    [...]
    /Users/jenkins/w/prod/BuildSingleReference@2/.conan/data/wt/4.8.0/_/_/build/b519578a0be8bdea40bcfbc807993fa61b3b1c32/src/src/Wt/Chart/WCartesianChart.C:4527:15: warning: enumeration values 'CenterX' and 'CenterY' not handled in switch [-Wswitch]
          switch (legendSide()) {
                  ^
    /Users/jenkins/w/prod/BuildSingleReference@2/.conan/data/wt/4.8.0/_/_/build/b519578a0be8bdea40bcfbc807993fa61b3b1c32/src/src/Wt/Chart/WCartesianChart.C:4527:15: note: add missing switch cases
          switch (legendSide()) {
                  ^
    /Users/jenkins/w/prod/BuildSingleReference@2/.conan/data/wt/4.8.0/_/_/build/b519578a0be8bdea40bcfbc807993fa61b3b1c32/src/src/Wt/Chart/WCartesianChart.C:4630:15: warning: enumeration values 'CenterX' and 'CenterY' not handled in switch [-Wswitch]
          switch (legendSide()) {
                  ^
    /Users/jenkins/w/prod/BuildSingleReference@2/.conan/data/wt/4.8.0/_/_/build/b519578a0be8bdea40bcfbc807993fa61b3b1c32/src/src/Wt/Chart/WCartesianChart.C:4630:15: note: add missing switch cases
          switch (legendSide()) {
                  ^
    2 warnings generated.
    Undefined symbols for architecture x86_64:
      "_deflate", referenced from:
          _zlib_stateful_compress_block in libcrypto.a(libcrypto-lib-c_zlib.o)
          _bio_zlib_write in libcrypto.a(libcrypto-lib-c_zlib.o)
          _bio_zlib_flush in libcrypto.a(libcrypto-lib-c_zlib.o)
      "_deflateEnd", referenced from:
          _zlib_stateful_finish in libcrypto.a(libcrypto-lib-c_zlib.o)
          _bio_zlib_free in libcrypto.a(libcrypto-lib-c_zlib.o)
      "_deflateInit_", referenced from:
          _zlib_stateful_init in libcrypto.a(libcrypto-lib-c_zlib.o)
          _bio_zlib_write in libcrypto.a(libcrypto-lib-c_zlib.o)
      "_inflate", referenced from:
          _zlib_stateful_expand_block in libcrypto.a(libcrypto-lib-c_zlib.o)
          _bio_zlib_read in libcrypto.a(libcrypto-lib-c_zlib.o)
      "_inflateEnd", referenced from:
          _zlib_stateful_finish in libcrypto.a(libcrypto-lib-c_zlib.o)
          _bio_zlib_free in libcrypto.a(libcrypto-lib-c_zlib.o)
      "_inflateInit_", referenced from:
          _zlib_stateful_init in libcrypto.a(libcrypto-lib-c_zlib.o)
          _bio_zlib_read in libcrypto.a(libcrypto-lib-c_zlib.o)
      "_zError", referenced from:
          _bio_zlib_write in libcrypto.a(libcrypto-lib-c_zlib.o)
          _bio_zlib_read in libcrypto.a(libcrypto-lib-c_zlib.o)
          _bio_zlib_flush in libcrypto.a(libcrypto-lib-c_zlib.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make[2]: *** [src/libwtd.4.8.0.dylib] Error 1
    make[1]: *** [src/CMakeFiles/wt.dir/all] Error 2
    make: *** [all] Error 2
    WARN: libmysqlclient/8.0.31: requirement openssl/[>=1.1 <4] overridden by wt/4.8.0 to openssl/3.1.1 
    wt/4.8.0: WARN: Using the new toolchains and generators without specifying a build profile (e.g: -pr:b=default) is discouraged and might cause failures and unexpected behavior
    wt/4.8.0: WARN: Using the new toolchains and generators without specifying a build profile (e.g: -pr:b=default) is discouraged and might cause failures and unexpected behavior
    wt/4.8.0: ERROR: Package 'b519578a0be8bdea40bcfbc807993fa61b3b1c32' build failed
    wt/4.8.0: WARN: Build folder /Users/jenkins/w/prod/BuildSingleReference@2/.conan/data/wt/4.8.0/_/_/build/b519578a0be8bdea40bcfbc807993fa61b3b1c32/build/Debug
    ERROR: wt/4.8.0: Error in build() method, line 264
    	cmake.build()
    	ConanException: Error 2 while executing cmake --build "/Users/jenkins/w/prod/BuildSingleReference@2/.conan/data/wt/4.8.0/_/_/build/b519578a0be8bdea40bcfbc807993fa61b3b1c32/build/Debug" '--' '-j4'
    
  • wt/4.9.1@:
    Didn't run or was cancelled before finishing

  • wt/4.3.1@:
    Didn't run or was cancelled before finishing

  • wt/4.4.0@:
    Didn't run or was cancelled before finishing

  • wt/4.6.0@:
    Didn't run or was cancelled before finishing

  • wt/4.5.1@:
    Didn't run or was cancelled before finishing

  • wt/4.6.2@:
    Didn't run or was cancelled before finishing

  • wt/4.5.0@:
    Didn't run or was cancelled before finishing


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

@jcar87
Copy link
Contributor

jcar87 commented Jul 11, 2023

Closing this via #18401 - commits were cherry-picked from this PR branch to preserve correct authorship.

@jcar87 jcar87 closed this Jul 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants