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

Add libvncserver/0.9.14 #20460

Open
wants to merge 26 commits into
base: master
Choose a base branch
from

Conversation

AndreyMlashkin
Copy link
Contributor

@AndreyMlashkin AndreyMlashkin commented Oct 9, 2023

Specify library name and version: libvncserver/0.9.14


@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@AndreyMlashkin
Copy link
Contributor Author

@uilianries @SSE4 glib uses 'libffi/3.4.4' and I have recently re-generated glib libraries. Why the CI is failing?
#20522

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@uilianries uilianries self-assigned this Oct 16, 2023
Copy link
Member

@uilianries uilianries left a comment

Choose a reason for hiding this comment

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

@AndreyMlashkin Thank you for this PR, I see this project is a real challenge, it requires tons of requirements and many of them are in middle of version conflict problem. It will require extra PRs to fix it 😞

Some important conflict that are blocking this PR:

  • 'gtk/4.7.0' requires 'libxml2/2.9.14' while 'xkbcommon/1.4.1'
  • 'glib/2.73.0' requires 'libffi/3.4.3' while 'wayland/1.22.0' requires 'libffi/3.4.4'.
  • 'pango/1.50.7' requires 'freetype/2.12.1' while 'cairo/1.17.4' requires 'freetype/2.13.0'.
  • 'pango/1.50.7' requires 'fontconfig/2.13.93' while 'cairo/1.17.4' requires 'fontconfig/2.14.2'.
  • 'libsystemd/253.10' requires 'libmount/2.39' while 'glib/2.73.0' requires 'libmount/2.36.2'.
  • 'gnutls/3.7.8' requires 'zstd/1.5.4' while 'libsystemd/253.10' requires 'zstd/1.5.5'.
  • 'gnutls/3.7.8' requires 'brotli/1.0.9' while 'freetype/2.13.0' requires 'brotli/1.1.0'.

Note that you added some version ranges that are not allowed in CCI for now, and may cause more missing packages in case of using.

recipes/libvncserver/all/conanfile.py Outdated Show resolved Hide resolved
recipes/libvncserver/all/conanfile.py Outdated Show resolved Hide resolved
recipes/libvncserver/all/conanfile.py Outdated Show resolved Hide resolved
recipes/libvncserver/all/conanfile.py Outdated Show resolved Hide resolved
recipes/libvncserver/all/conanfile.py Outdated Show resolved Hide resolved
recipes/libvncserver/all/test_package/test_package.c Outdated Show resolved Hide resolved
recipes/libvncserver/all/conanfile.py Outdated Show resolved Hide resolved
recipes/libvncserver/all/conanfile.py Outdated Show resolved Hide resolved
recipes/libvncserver/all/conanfile.py Outdated Show resolved Hide resolved
recipes/libvncserver/all/conanfile.py Show resolved Hide resolved
Co-authored-by: Uilian Ries <uilianries@gmail.com>
@AndreyMlashkin
Copy link
Contributor Author

@uilianries , what's wrong about glib?

self.requires("libffi/3.4.4")

it uses libffi/3.4.4 for long time already and recently I have bumped other dependencies there

@AndreyMlashkin
Copy link
Contributor Author

AndreyMlashkin commented Oct 16, 2023

@uilianries , after adding

        tc = CMakeDeps(self)
        tc.generate()

it stopped working for me locally

@AndreyMlashkin
Copy link
Contributor Author

@uilianries and in the test_package - from where
#include <libvncserver/auth.h>
should come?

@conan-center-bot

This comment has been minimized.

@conan-center-bot conan-center-bot removed the Missing dependencies Build failed due missing dependencies in Conan Center label Nov 7, 2023
@conan-center-bot

This comment has been minimized.

@AndreyMlashkin
Copy link
Contributor Author

With test_v1, it reproduces the problem I have with my conan v1 build.
Any help is appreciated.

@AndreyMlashkin
Copy link
Contributor Author

Looking into it. We rebuilt those binaries, but I'm afraid there is something else.

It should be something else, because I also don't see those libraries

MALASHKIN Andrei added 2 commits November 7, 2023 22:52
@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@AndreyMlashkin
Copy link
Contributor Author

@franramirez688 @uilianries
now only ffmpeg binary is missing:
ERROR: Missing prebuilt package for 'ffmpeg/6.0'

If you have any clue why windows build fails, any help apreciated.
If not, I would throw exception for windows builds as first iteration of recipe implementation.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@AndreyMlashkin
Copy link
Contributor Author

depends #21088

@conan-center-bot

This comment has been minimized.

@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ✔️

All green in build 29 (78ebbd38bc3d832922ca1b4620a45e4d8ec62a10):

  • libvncserver/0.9.14:
    All packages built successfully! (All logs)

Conan v2 pipeline ❌

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping @conan-io/barbarians on the PR and we will help you.

See details:

Failure in build 29 (78ebbd38bc3d832922ca1b4620a45e4d8ec62a10):

  • libvncserver/0.9.14:
    CI failed to create some packages (All logs)

    Logs for packageID 83568cff88a6a6bd58b0b4bc8a0c75ac5dfcf0a5:
    [settings]
    arch=x86_64
    build_type=Release
    compiler=gcc
    compiler.cppstd=17
    compiler.libcxx=libstdc++11
    compiler.version=11
    os=Linux
    [options]
    */*:shared=True
    
    [...]
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `SSL_new@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `png_set_IHDR@PNG16_0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `jpeg_start_decompress@LIBJPEG_9.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `ERR_error_string@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncclient.so: undefined reference to `SSL_CTX_set_verify@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncclient.so: undefined reference to `BIO_free@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `jpeg_CreateCompress@LIBJPEG_9.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `EVP_aes_128_ecb@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncclient.so: undefined reference to `SSL_CTX_set_security_level@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncclient.so: undefined reference to `SSL_CTX_load_verify_locations@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `SSL_CTX_use_PrivateKey_file@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncclient.so: undefined reference to `sasl_encode'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `EVP_EncryptInit_ex@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncclient.so: undefined reference to `SSL_CTX_set_ex_data@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncclient.so: undefined reference to `OpenSSL_version@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `SSL_pending@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `SHA1_Final@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncclient.so: undefined reference to `PEM_X509_INFO_read_bio@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `DH_set0_pqg@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `DH_set0_key@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `png_set_filter@PNG16_0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `TLS_server_method@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `SSL_CTX_new@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `png_destroy_write_struct@PNG16_0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncclient.so: undefined reference to `X509_VERIFY_PARAM_set_flags@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `SHA1_Update@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `jpeg_finish_compress@LIBJPEG_9.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `jpeg_destroy_compress@LIBJPEG_9.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncclient.so: undefined reference to `sasl_setprop'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `jpeg_abort_compress@LIBJPEG_9.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncserver.so: undefined reference to `OPENSSL_init_ssl@OPENSSL_3.0.0'
    /opt/conan/binutils/bin/ld: /home/conan/w/prod-v2/bsr/41724/bfddd/p/b/libvna9b0f426ca0a5/p/lib/libvncclient.so: undefined reference to `X509_INFO_free@OPENSSL_3.0.0'
    collect2: error: ld returned 1 exit status
    CMakeFiles/test_package.dir/build.make:85: recipe for target 'test_package' failed
    make[2]: *** [test_package] Error 1
    CMakeFiles/Makefile2:75: recipe for target 'CMakeFiles/test_package.dir/all' failed
    make[1]: *** [CMakeFiles/test_package.dir/all] Error 2
    Makefile:83: recipe for target 'all' failed
    make: *** [all] Error 2
    
    *********************************************************
    Recipe 'libvncserver/0.9.14 (test package)' cannot build its binary
    It is possible that this recipe is not Conan 2.0 ready
    If the recipe comes from ConanCenter, report it at https://github.com/conan-io/conan-center-index/issues
    If it is your recipe, check if it is updated to 2.0
    *********************************************************
    
    ERROR: libvncserver/0.9.14 (test package): Error in build() method, line 21
    	cmake.build()
    	ConanException: Error 2 while executing
    

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.

@AndreyMlashkin
Copy link
Contributor Author

@uilianries @SSE4
unfortunatelly, I can't reproduce this error in my conan v2 docker.
It builds just fine with Conan version 2.0.13

======== Input profiles ========
Profile host:
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=gnu17
compiler.libcxx=libstdc++11
compiler.version=11
os=Linux
[options]
*/*:shared=True

Profile build:
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=gnu17
compiler.libcxx=libstdc++11
compiler.version=11
os=Linux

@uilianries
Copy link
Member

@AndreyMlashkin The correct Docker image to be used in this case should be conanio/gcc11-ubuntu16.04:2.0.12, the same used by the CI service.

@AndreyMlashkin
Copy link
Contributor Author

@AndreyMlashkin The correct Docker image to be used in this case should be conanio/gcc11-ubuntu16.04:2.0.12, the same used by the CI service.

Yes, I am able to reproduce with this one. Still no idea, why does it happening

@uilianries
Copy link
Member

uilianries commented Nov 17, 2023

@AndreyMlashkin I checked the CMakeLists.txt and is a bit more trick:

  • It uses variables for several dependencies (e.g. OPENSSL_LIBRARIES), instead of CMake targets. So you need to check if those variables are really aligned with those provided by CMakeDeps
  • It uses find_package but as optional, in case some package name does not match, it will silently fail to find the requirement and will not including for linkage.
  • It passes several defines (e.g. LIBVNCSERVER_HAVE_LIBJPEG), including for public headers. You will need to check it, than define transitive_headers/transitive_libs (if needed). Please, don't forget adding a comment where the transitive header is needed (e.g # INFO: rfbclient.h includes <sasl/sasl.h>). Plus, you need to export those defines in cpp_info as they are part of public headers too
  • You need to add self.cpp_info.components[<name>].requires according to each component (client/server)

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ AndreyMlashkin
❌ MALASHKIN Andrei


MALASHKIN Andrei seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

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