conan-io / conan-center-index

Recipes for the ConanCenter repository
https://conan.io/center
MIT License
966 stars 1.77k forks source link

[nurcses|doxygen] : doxygen don't have support for gcc version 9 in conan v2 #24970

Open sabapathim opened 3 months ago

sabapathim commented 3 months ago

Description

Description

I have encountered an issue with Conan v2 ( 2.0.7 to 2.6.0) where certain packages do not support the following configuration:

[settings] arch=x86_64 build_type=Release compiler=gcc compiler.libcxx=libstdc++11 compiler.version=9 os=Linux

This issue is specific to GCC version 9 on Linux Ubuntu 20.04. The lack of support for this configuration in Conan v2 is problematic as it affects the following packages:

doxygen/1.9.4#e623a1e90a2d4b84ef87786161ce1b5d:eeb1b51ffeea6c954ff777fd2f24c79e122d09b9 doxygen/1.8.17#6dc34583abd89ead45db1407b15e2c38:eeb1b51ffeea6c954ff777fd2f24c79e122d09b9 ncurses/6.4#78908f3ed548f188cf15e415f8949f2f:ce9018589f291698a25f5ae23c3e0676d2ad6408

Impact:

The inability to use these packages with the specified settings hinders our ability to maintain consistency across our development environments, as GCC 9 is a widely used compiler version in our Linux builds.

Request:

Could support for GCC 9 on Ubuntu 20.04 be added for these packages in Conan v2? If there are any workarounds or configurations that could be applied in the meantime, that information would be greatly appreciated.

Thank you in advance !!

Package and Environment Details

Conan profile

[settings] arch=x86_64 build_type=Release compiler=gcc compiler.libcxx=libstdc++11 compiler.version=9 os=Linux

Steps to reproduce

conan install --requires -r conancenter

example : conan install --requires doxygen/1.9.4 -r conancenter

Logs

Click to expand log ``` conan install --requires doxygen/1.9.4 -r conancenter ======== Input profiles ======== Profile host: [settings] arch=x86_64 build_type=Release compiler=gcc compiler.libcxx=libstdc++11 compiler.version=9 os=Linux Profile build: [settings] arch=x86_64 build_type=Release compiler=gcc compiler.libcxx=libstdc++11 compiler.version=9 os=Linux ======== Computing dependency graph ======== Graph root cli Requirements doxygen/1.9.4#e623a1e90a2d4b84ef87786161ce1b5d - Cache libiconv/1.17#73fefc1b696e069df90fd1d18aa63edd - Cache util-linux-libuuid/2.39#2968553d07c154cbd7273b980977e6c3 - Cache xapian-core/1.4.19#f8de8e284f40b94b11dd6df4acc8321a - Cache zlib/1.2.13#4e74ebf1361fe6fb60326f473f276eb5 - Cache Build requirements bison/3.8.2#ed1ba0c42d2ab7ab64fc3a62e9ecc673 - Cache flex/2.6.4#e35bc44b3fcbcd661e0af0dc5b5b1ad4 - Cache m4/1.4.19#b38ced39a01e31fef5435bc634461fd2 - Cache Resolved version ranges zlib/[>=1.2.11 <2]: zlib/1.2.13 ======== Computing necessary packages ======== doxygen/1.9.4: Compatible package ID eeb1b51ffeea6c954ff777fd2f24c79e122d09b9 equal to the default package ID: Skipping it. Requirements doxygen/1.9.4#e623a1e90a2d4b84ef87786161ce1b5d:eeb1b51ffeea6c954ff777fd2f24c79e122d09b9 - Missing Build requirements Skipped binaries libiconv/1.17, util-linux-libuuid/2.39, xapian-core/1.4.19, zlib/1.2.13, bison/3.8.2, flex/2.6.4, m4/1.4.19 ERROR: Missing binary: doxygen/1.9.4:eeb1b51ffeea6c954ff777fd2f24c79e122d09b9 doxygen/1.9.4: WARN: Can't find a 'doxygen/1.9.4' package binary 'eeb1b51ffeea6c954ff777fd2f24c79e122d09b9' for the configuration: [settings] arch=x86_64 build_type=Release compiler=gcc compiler.libcxx=libstdc++11 compiler.version=9 os=Linux [options] enable_app=False enable_parse=True enable_search=True [requires] libiconv/1.17#73fefc1b696e069df90fd1d18aa63edd:72c852c5f0ae27ca0b1741e5fd7c8b8be91a590a util-linux-libuuid/2.39#2968553d07c154cbd7273b980977e6c3:72c852c5f0ae27ca0b1741e5fd7c8b8be91a590a xapian-core/1.4.19#f8de8e284f40b94b11dd6df4acc8321a:f8c40bc08b9de950fca6507537da923c114ebf30 zlib/1.2.13#4e74ebf1361fe6fb60326f473f276eb5:72c852c5f0ae27ca0b1741e5fd7c8b8be91a590a ERROR: Missing prebuilt package for 'doxygen/1.9.4'. You can try: - List all available packages using 'conan list "doxygen/1.9.4:*" -r=remote' - Explain missing binaries: replace 'conan install ...' with 'conan graph explain ...' - Try to build locally from sources using the '--build=doxygen/1.9.4' argument More Info at 'https://docs.conan.io/2/knowledge/faq.html#error-missing-prebuilt-package' ```
AbrilRBS commented 2 months ago

Hi @sabapathim thanks a lot for taking the time to open the issue.

What you're experiencing is not a lack of support of those recipes to your configuration, but just a missing binary for your given profile. This means that Conan does not build and upload packages for gcc 9, so if you need to use these packages, you'll need to ask Conan to build those packages in your machine for you (Usually adding --build=missing would be enough to tell Conan to build any missing packages, not just these, that are not provided by any of your remotes)

I hope this helps, let me know if you have any follow-up question, happy to help where possible :)

sabapathim commented 2 months ago

Hi @AbrilRBS,

Thank you for taking the time to respond to my issue.

I’ve tried the build option, and it works perfectly for me. However, within my organization, there are over 300 users using these packages, and requiring each of them to build the package is not ideal. This is why I’m requesting a pre-built binary for GCC 9.

Please let me know what can be done in this situation. If necessary, I’m willing to contribute by building the binary for GCC 9 myself. Could you guide me through the process I should follow to create a doxygen package compatible with GCC 9?

Thank you for your assistance.

sabapathim commented 2 months ago

Hello @AbrilRBS I see the cmake package don't have any compiler version fixed for linux , it was able to worked perfectly, https://conan.io/center/recipes/cmake?version=3.30.1

But I see the conan configuration for the linux gcc is fixed to 11 for conan2 here. How the cmake alone able to be a exception from that setting ?

jcar87 commented 2 months ago

I’ve tried the build option, and it works perfectly for me. However, within my organization, there are over 300 users using these packages, and requiring each of them to build the package is not ideal. This is why I’m requesting a pre-built binary for GCC 9.

For Conan 2 we currently only publish binaries for gcc11, and it is very unlikely that we will publish binaries for versions earlier than that. We will reconsider this once we stop supporting Conan 1.x and free up resources to support additional configurations. There will be an update on this later this year. We appreciate that Ubuntu 20.04 is still used - however there are two more recent Ubuntu LTS after that one and there is a limit as to how far back it makes sense for us to go.

How the cmake alone able to be a exception from that setting ? The cmake recipe uses pre-built binaries and erases the compiler setting, so there are matching binaries for os and arch combinations, irrespective of the compiler versions.

there are over 300 users using these packages, and requiring each of them to build the package is not ideal.

I would encourage your company to read our documentation on how you can host your binaries: https://docs.conan.io/2/devops/using_conancenter.html and https://docs.conan.io/2/tutorial/conan_repositories.html to support your teams needs, some of which are free - like Artifactory CE.

We try to support a wide user base - but we are unable to support all configurations.

sabapathim commented 2 months ago

Hello @jcar87 ,

Thanks for your response and it was quiet helpful,

I tried doxygen in ubuntu 22.04 , where gcc version is 11

I encountered the below error.

conan install --requires doxygen/1.9.4 -r conancenter

======== 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

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

======== Computing dependency graph ========
Graph root
    cli
Requirements
    doxygen/1.9.4#e623a1e90a2d4b84ef87786161ce1b5d - Cache
    libiconv/1.17#73fefc1b696e069df90fd1d18aa63edd - Cache
    util-linux-libuuid/2.39#2968553d07c154cbd7273b980977e6c3 - Cache
    xapian-core/1.4.19#f8de8e284f40b94b11dd6df4acc8321a - Cache
    zlib/1.3.1#f52e03ae3d251dec704634230cd806a2 - Cache
Build requirements
    bison/3.8.2#ed1ba0c42d2ab7ab64fc3a62e9ecc673 - Cache
    flex/2.6.4#e35bc44b3fcbcd661e0af0dc5b5b1ad4 - Cache
    m4/1.4.19#b38ced39a01e31fef5435bc634461fd2 - Cache
Resolved version ranges
    zlib/[>=1.2.11 <2]: zlib/1.3.1

======== Computing necessary packages ========
xapian-core/1.4.19: Compatible package ID df4ef6691343c4ca5e326f6f4d97969e47fd6914 equal to the default package ID: Skipping it.
xapian-core/1.4.19: Checking 11 compatible configurations
xapian-core/1.4.19: Compatible configurations not found in cache, checking servers
xapian-core/1.4.19: '85469349c0fe9729f78d6ffd9bcc10a7392ac91b': compiler.cppstd=98
xapian-core/1.4.19: '3a80f62dc71c9aa197fab659b26a2ae11de58b6c': compiler.cppstd=gnu98
xapian-core/1.4.19: '8e3e833b3c5c4f610979d863a28ab1660ab5b81b': compiler.cppstd=11
xapian-core/1.4.19: 'bbfabb1c930b1d8f43806e76271e3263afc0f594': compiler.cppstd=gnu11
xapian-core/1.4.19: 'aa0e9ec05b539573fc85e67af2c58a49670352ef': compiler.cppstd=14
xapian-core/1.4.19: '3ce139fff6d89bbe27e79f801e5a2a293f1ecf78': compiler.cppstd=gnu14
xapian-core/1.4.19: '92ee770dfe1213636480fd48a0961faca2c987fd': compiler.cppstd=17
xapian-core/1.4.19: Main binary package 'df4ef6691343c4ca5e326f6f4d97969e47fd6914' missing. Using compatible package '92ee770dfe1213636480fd48a0961faca2c987fd': compiler.cppstd=17
doxygen/1.9.4: Compatible package ID 5f5002a7e89aea6b1012e26b87fc1cce2af92c58 equal to the default package ID: Skipping it.
doxygen/1.9.4: Checking 11 compatible configurations
doxygen/1.9.4: Compatible configurations not found in cache, checking servers
doxygen/1.9.4: 'a96f9ca19054d69c4c96487c00467d835ecf14f4': compiler.cppstd=98
doxygen/1.9.4: 'e7f4ddc67a3f17e040338a41d9161e400b5fd674': compiler.cppstd=gnu98
doxygen/1.9.4: '932a5542af859af14eef1e2b2cfb3cdbdaa04777': compiler.cppstd=11
doxygen/1.9.4: '5a78127bf3fc28e55c29250edf555c86fa6dda6f': compiler.cppstd=gnu11
doxygen/1.9.4: '4b77e221bd59431f3b3c6598d130983cad2eeab8': compiler.cppstd=14
doxygen/1.9.4: 'b4513330374419b7cd84d363194db648323682ef': compiler.cppstd=gnu14
doxygen/1.9.4: 'f1de01f50ec41896283e42d15b67df0e0c57f8e2': compiler.cppstd=17
doxygen/1.9.4: '8e4d150024882af11a1fedbe0bf3682b5e87bd9d': compiler.cppstd=20
doxygen/1.9.4: '25f423a4a97193015974245eaa06fcff8c67e0ef': compiler.cppstd=gnu20
doxygen/1.9.4: '850453f2e2d689b27230a04ff7f10b78017bd5b0': compiler.cppstd=23
doxygen/1.9.4: 'b891fbbfd78f9a1ee5ece7b79abb88a8a9ac2960': compiler.cppstd=gnu23
Requirements
    doxygen/1.9.4#e623a1e90a2d4b84ef87786161ce1b5d:5f5002a7e89aea6b1012e26b87fc1cce2af92c58 - Missing
Build requirements
Skipped binaries
    libiconv/1.17, util-linux-libuuid/2.39, xapian-core/1.4.19, zlib/1.3.1, bison/3.8.2, flex/2.6.4, m4/1.4.19
ERROR: Missing binary: doxygen/1.9.4:5f5002a7e89aea6b1012e26b87fc1cce2af92c58

doxygen/1.9.4: WARN: Can't find a 'doxygen/1.9.4' package binary '5f5002a7e89aea6b1012e26b87fc1cce2af92c58' for the configuration:
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=gnu17
compiler.libcxx=libstdc++11
compiler.version=11
os=Linux
[options]
enable_app=False
enable_parse=True
enable_search=True
[requires]
libiconv/1.17#73fefc1b696e069df90fd1d18aa63edd:b647c43bfefae3f830561ca202b6cfd935b56205
util-linux-libuuid/2.39#2968553d07c154cbd7273b980977e6c3:b647c43bfefae3f830561ca202b6cfd935b56205
xapian-core/1.4.19#f8de8e284f40b94b11dd6df4acc8321a:92ee770dfe1213636480fd48a0961faca2c987fd
zlib/1.3.1#f52e03ae3d251dec704634230cd806a2:b647c43bfefae3f830561ca202b6cfd935b56205

ERROR: Missing prebuilt package for 'doxygen/1.9.4'. You can try:
    - List all available packages using 'conan list "doxygen/1.9.4:*" -r=remote'
    - Explain missing binaries: replace 'conan install ...' with 'conan graph explain ...'
    - Try to build locally from sources using the '--build=doxygen/1.9.4' argument

More Info at 'https://docs.conan.io/2/knowledge/faq.html#error-missing-prebuilt-package'

And yes I'm aware of the build option which you told earlier, just want to know , though I have suitable settings, what went wrong !!.

Thanks for your response in advance @jcar87 !!