conan-io / conan

Conan - The open-source C and C++ package manager
https://conan.io
MIT License
8.14k stars 970 forks source link

[question] something searching for libglvnd using pacman on windows. #17025

Open TrevorCash opened 1 day ago

TrevorCash commented 1 day ago

What is your question?

Hello All,

I get the following error when calling conan install on windows. something is specifying libglvnd as a system dependancy using pacman (but this is not an msys2 package). Is there a way of narrowing this down? Fixing it?


Configure (Conan Install)(Debug)

======== Input profiles ========
Profile host:
[settings]
arch=x86_64
build_type=Debug
compiler=msvc
compiler.cppstd=14
compiler.runtime=dynamic
compiler.runtime_type=Debug
compiler.version=194
os=Windows
[conf]
tools.microsoft.bash:active=True
tools.microsoft.bash:path=C:\msys64\usr\bin\bash
tools.microsoft.bash:subsystem=msys2
tools.system.package_manager:mode=check

Profile build:
[settings]
arch=x86_64
build_type=Release
compiler=msvc
compiler.cppstd=14
compiler.runtime=dynamic
compiler.runtime_type=Release
compiler.version=194
os=Windows
[conf]
tools.microsoft.bash:active=True
tools.microsoft.bash:path=C:\msys64\usr\bin\bash
tools.microsoft.bash:subsystem=msys2
tools.system.package_manager:mode=check

======== Computing dependency graph ========
Graph root
    conanfile.py: C:\Users\tcash\repos\motion\conanfile.py
Requirements
    boost/1.81.0#929f1e244f121f10d11a82009c466cd3 - Cache
    brotli/1.1.0#d56d7bb9ca722942aba17369cb5c0519 - Cache
    bzip2/1.0.8#457c272f7da34cb9c67456dd217d36c4 - Cache
    cereal/1.3.2#b94802e904e1129e7fdb46d9bff5321d - Cache
    dacap-clip/1.9#ff9681d58c15191ee016b04edcdb53d8 - Cache
    ffmpeg/6.1.1#8a78efc06468bfc8b00a78926dcc6363 - Cache
    freetype/2.13.2#7934d59c447d72edcd56025dc60e1aeb - Cache
    glfw/3.4#556ce0bc9e0abc75fe4378b86e566fc4 - Cache
    libfdk_aac/2.0.3#0115f6598be7303e042684e3a846b12d - Cache
    libiconv/1.17#73fefc1b696e069df90fd1d18aa63edd - Cache
    libmp3lame/3.100#44b12d19316eb2b223d98d3e75dae438 - Cache
    libpng/1.6.43#c219d8f01983bac10c404fc613605eef - Cache
    libzip/1.10.1#502a2dde4cadffadd89a63e9bd824b08 - Cache
    nalpeiron-v10-client/3.10.0.5#a6be43fe1641855fb65e0898be257a2a - Cache
    opengl/system#4df6fecde4084386beded3ed0e56e4ea - Cache
    openssl/3.3.1#279e86dc2a7dded8c1fe8512e775bdb1 - Cache
    rapidjson/1.1.0#9f5e39d1f4a6b67d48c6a343c4592f32 - Cache
    tinyxml2/10.0.0#832c7f8038cef53f6427577d6e66a7a8 - Cache
    xz_utils/5.4.5#51e5a6e6564f4ea3afd79def01f035ad - Cache
    zlib/1.3.1#f52e03ae3d251dec704634230cd806a2 - Cache
    zstd/1.5.5#1f239731dc45147c7fc2f54bfbde73df - Cache
Build requirements
    b2/5.2.1#91bc73931a0acb655947a81569ed8b80 - Cache
    meson/1.2.2#29cf77c283f6af08818f6fd8068c37e8 - Cache
    meson/1.3.2#726f715cfedf3f94cc4d30a5d5d9c281 - Cache
    nasm/2.16.01#d0aebbd20ccbb6ad9c9c753ab708098c - Cache
    ninja/1.12.1#fd583651bf0c6a901943495d49878803 - Cache
    pkgconf/2.1.0#27f44583701117b571307cf5b5fe5605 - Cache
    strawberryperl/5.32.1.1#707032463aa0620fa17ec0d887f5fe41 - Cache
    yasm/1.3.0#fb800a15413dca19bfaef9e4b5d50694 - Cache
Resolved version ranges
    b2/[>=5.2 <6]: b2/5.2.1
    ninja/[>=1.10.2 <2]: ninja/1.12.1
    openssl/[>=1.1 <4]: openssl/3.3.1
    zlib/[>=1.2.11 <2]: zlib/1.3.1

======== Computing necessary packages ========
bzip2/1.0.8: Main binary package 'dd62ce301c6ef0d8f7729c263acbaf3a11b7c621' missing
bzip2/1.0.8: Checking 1 compatible configurations
bzip2/1.0.8: Found compatible package '7bde698069de06159da4d4f7bb174ecdafdbc48b': compiler.version=193
libiconv/1.17: Main binary package '8b7e35f91e516e42ed736c6dd52a9263da3a5dad' missing
libiconv/1.17: Checking 1 compatible configurations
libiconv/1.17: Found compatible package 'ed44dacde2751b398e4bf9441ff992a70c913c00': compiler.version=193
zlib/1.3.1: Main binary package '8b7e35f91e516e42ed736c6dd52a9263da3a5dad' missing
zlib/1.3.1: Checking 1 compatible configurations
zlib/1.3.1: Found compatible package 'ed44dacde2751b398e4bf9441ff992a70c913c00': compiler.version=193
ffmpeg/6.1.1: Main binary package 'cb1dc8a5aa0f2d18e825a11699ca99c532203f66' missing
ffmpeg/6.1.1: Checking 1 compatible configurations
ffmpeg/6.1.1: Compatible configurations not found in cache, checking servers
ffmpeg/6.1.1: '1dcf36ae9aced70a6ae32a8710ce5991d69a1ce5': compiler.version=193
Requirements
    boost/1.81.0#929f1e244f121f10d11a82009c466cd3:413baa11dbb71f81c5665b92b737afdfcd37cc8d#a79caeead0b665ef552f83d331d66f10 - Cache
    brotli/1.1.0#d56d7bb9ca722942aba17369cb5c0519:e61b328c57a7dac78df341bc28d447e08bf608e7#1480f793b5ba870d19a9c1f6ae47b947 - Cache
    bzip2/1.0.8#457c272f7da34cb9c67456dd217d36c4:7bde698069de06159da4d4f7bb174ecdafdbc48b#a59b7e025c48dc10bacb5c71ef1b5d72 - Cache
    cereal/1.3.2#b94802e904e1129e7fdb46d9bff5321d:da39a3ee5e6b4b0d3255bfef95601890afd80709#0ebb9058692e29b6254aad3b967b53b8 - Cache
    dacap-clip/1.9#ff9681d58c15191ee016b04edcdb53d8:e35586cbe756f256476b14f9ec13c3e2d4a49f79#1a04a8b045ca0c6a4d0121079bb57985 - Cache
    ffmpeg/6.1.1#8a78efc06468bfc8b00a78926dcc6363:cb1dc8a5aa0f2d18e825a11699ca99c532203f66 - Build
    freetype/2.13.2#7934d59c447d72edcd56025dc60e1aeb:8c8e819f72bf238a61323610becf843e3fd7289a#bc0ce2cdd9f0448265531579bf196e77 - Cache
    glfw/3.4#556ce0bc9e0abc75fe4378b86e566fc4:ee8ddfc1a6035d30dc67d6422a1a1c9220db1abc#27c767cdb8765bd486adac350d7dd7f2 - Cache
    libfdk_aac/2.0.3#0115f6598be7303e042684e3a846b12d:4631f2a20e70ab5c624ced8299b9b57d4e967722#5261dbe37d850b5dbf2b598a4b06c44f - Cache
    libiconv/1.17#73fefc1b696e069df90fd1d18aa63edd:ed44dacde2751b398e4bf9441ff992a70c913c00#f6a7ae60206a6967de92199ed9457817 - Cache
    libmp3lame/3.100#44b12d19316eb2b223d98d3e75dae438:8b7e35f91e516e42ed736c6dd52a9263da3a5dad#d851a2dcfa4e44b7edcd5de79af3b1a6 - Cache
    libpng/1.6.43#c219d8f01983bac10c404fc613605eef:34b444759868b4ce4f04f81d4ad4927bd78d7d3e#7b05dba89b14e1695577a84904bdf308 - Cache
    libzip/1.10.1#502a2dde4cadffadd89a63e9bd824b08:81512de56e03ee7b0f2aaea287753381d776f26d#ecf031d4836b7d0e3e4eab3b8d7a7f5f - Cache
    nalpeiron-v10-client/3.10.0.5#a6be43fe1641855fb65e0898be257a2a:522dcea5982a3f8a5b624c16477e47195da2f84f#bb4dc315f63f2887b8e2229d4d3c6ba2 - Cache
    opengl/system#4df6fecde4084386beded3ed0e56e4ea:da39a3ee5e6b4b0d3255bfef95601890afd80709#0ba8627bd47edc3a501e8f0eb9a79e5e - Cache
    openssl/3.3.1#279e86dc2a7dded8c1fe8512e775bdb1:c6796611a63334e83ec731d8adba99e6f1492955#33b211c8ad40ecf28c0dbec48a6ed652 - Cache
    rapidjson/1.1.0#9f5e39d1f4a6b67d48c6a343c4592f32:da39a3ee5e6b4b0d3255bfef95601890afd80709#c8d3999780598e0fbaed67c22f961d87 - Cache
    tinyxml2/10.0.0#832c7f8038cef53f6427577d6e66a7a8:4631f2a20e70ab5c624ced8299b9b57d4e967722#5c768ed1f78b93682325e0a0a6db80c5 - Cache
    xz_utils/5.4.5#51e5a6e6564f4ea3afd79def01f035ad:8b7e35f91e516e42ed736c6dd52a9263da3a5dad#58324cd10db66993e2fb967315b7bea1 - Cache
    zlib/1.3.1#f52e03ae3d251dec704634230cd806a2:ed44dacde2751b398e4bf9441ff992a70c913c00#f8fd19b864e677bea9973dd860c33fa8 - Cache
    zstd/1.5.5#1f239731dc45147c7fc2f54bfbde73df:84686b40e13ac9cce8e1c0900e6b00ce53d2ec1b#7fbf298553eea6d1acad9a3b29eb1e5c - Cache
Build requirements
    pkgconf/2.1.0#27f44583701117b571307cf5b5fe5605:43771b8671ac44479c188dd72670e2eb2d7918a6#302b4a47f55f982ddf140855abd5bf1f - Cache
    yasm/1.3.0#fb800a15413dca19bfaef9e4b5d50694:723257509aee8a72faf021920c2874abc738e029#68bb37bc24509a0529e3363ecac8f9e3 - Cache
Skipped binaries
    b2/5.2.1, meson/1.2.2, meson/1.3.2, nasm/2.16.01, ninja/1.12.1, strawberryperl/5.32.1.1
error: package 'libglvnd' was not found
ERROR: opengl/system: Error in system_requirements() method, line 36
        pacman.install(["libglvnd"], update=True, check=True)
        ConanException: System requirements: 'libglvnd' are missing but can't install because tools.system.package_manager:mode is 'check'.Please update packages manually or set 'tools.system.package_manager:mode' to 'install' in the [conf] section of the profile, or in the command line using '-c tools.system.package_manager:mode=install'

Thanks, -Trevor

Have you read the CONTRIBUTING guide?

TrevorCash commented 1 day ago

After running conan graph info . -c tools.system.package_manager:mode=report-installed --format=json

It looks like opengl package requires it:

{
                "ref": "opengl/system#4df6fecde4084386beded3ed0e56e4ea",
                "id": "8",
                "recipe": "Cache",
                "package_id": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
                "prev": "0ba8627bd47edc3a501e8f0eb9a79e5e",
                "rrev": "4df6fecde4084386beded3ed0e56e4ea",
                "rrev_timestamp": 1709801735.507,
                "prev_timestamp": 1709802099.364,
                "remote": null,
                "binary_remote": null,
                "build_id": null,
                "binary": "Cache",
                "invalid_build": false,
                "info_invalid": null,
                "name": "opengl",
                "user": null,
                "channel": null,
                "url": "https://github.com/conan-io/conan-center-index",
                "license": "MIT",
                "author": null,
                "description": "cross-platform virtual conan package for the OpenGL support",
                "homepage": "https://www.opengl.org/",
                "build_policy": null,
                "upload_policy": null,
                "revision_mode": "hash",
                "provides": null,
                "deprecated": null,
                "win_bash": null,
                "win_bash_run": null,
                "default_options": null,
                "options_description": null,
                "version": "system",
                "topics": [
                    "opengl",
                    "gl"
                ],
                "package_type": "shared-library",
                "languages": [],
                "settings": {
                    "os": "Windows",
                    "arch": "x86_64",
                    "compiler": "msvc",
                    "compiler.cppstd": "14",
                    "compiler.runtime": "dynamic",
                    "compiler.runtime_type": "Release",
                    "compiler.version": "194",
                    "build_type": "Release"
                },
                "options": {},
                "options_definitions": {},
                "generators": [],
                "python_requires": null,
                "system_requires": {
                    "pacman": {
                        "install": [
                            "libglvnd"
                        ],
                        "missing": [
                            "libglvnd"
                        ]
                    }
                },
                "recipe_folder": "C:\\Users\\tcash\\.conan2\\p\\openge4e951d7f121d\\e",
                "source_folder": null,
                "build_folder": null,
                "generators_folder": null,
                "package_folder": null,
                "cpp_info": {
                    "root": {
                        "includedirs": [
                            "include"
                        ],
                        "srcdirs": null,
                        "libdirs": [
                            "lib"
                        ],
                        "resdirs": null,
                        "bindirs": [
                            "bin"
                        ],
                        "builddirs": null,
                        "frameworkdirs": null,
                        "system_libs": null,
                        "frameworks": null,
                        "libs": null,
                        "defines": null,
                        "cflags": null,
                        "cxxflags": null,
                        "sharedlinkflags": null,
                        "exelinkflags": null,
                        "objects": null,
                        "sysroot": null,
                        "requires": null,
                        "properties": null
                    }
                },
                "conf_info": {},
                "label": "opengl/system",
                "info": {},
                "vendor": false,
                "dependencies": {},
                "context": "host",
                "test": false
            }
memsharded commented 1 day ago

Thanks for your report @TrevorCash

The relevant line would be https://github.com/conan-io/conan/blob/71795621a800c25021f27ab1fe73c5eefadad04e/conan/tools/system/package_manager.py#L48

This implements that pacman is the default package manager for msys2 environments. It is true that line https://github.com/conan-io/conan/blob/71795621a800c25021f27ab1fe73c5eefadad04e/conan/tools/system/package_manager.py#L40 is not that evident that it should use that conf, but the os.subsystem setting.

While we have a look, you can use the conf tools.system.package_manager:tool to explicitly define which system package manager you would use, if it is a Windows machine, maybe none or chocolatey could do the job