'conan system_requirements auto install

While installing xorg with conan install .. command, system requirements are checked in conan receipe using pkg-config tool.

Each missing system package raises an exception, and thus stop the conan install command.

ERROR: xorg/system: Error in package_info() method, line 97
    self._fill_cppinfo_from_pkgconfig(name)
while calling '_fill_cppinfo_from_pkgconfig', line 24
    if not pkg_config.provides:
    ConanException: pkg-config command ['pkg-config', '--print-provides', 'xcb-renderutil', '--print-errors'] failed with error: Command 'pkg-config --print-provides xcb-renderutil --print-errors' returned non-zero exit status 1.
Package xcb-renderutil was not found in the pkg-config search path.
Perhaps you should add the directory containing `xcb-renderutil.pc'
to the PKG_CONFIG_PATH environment variable
No package 'xcb-renderutil' found

I cannot get those system packages to be installed by conan tool, am I missing a command line argument while invoking conan ?



Solution 1:[1]

There are usually distribution-specific package manager warnings listing what dependencies need to be installed above this line:

ERROR: xorg/system:...

For example, on Ubuntu 22.04 I got the following after adding opencv/4.5.5 to my conanfile.txt:

...
dpkg-query: no packages found matching libx11-xcb-dev
dpkg-query: no packages found matching libfontenc-dev
dpkg-query: no packages found matching libxaw7-dev
dpkg-query: no packages found matching libxkbfile-dev
dpkg-query: no packages found matching libxmu-dev
dpkg-query: no packages found matching libxmuu-dev
...
ERROR: xorg/system:...

You can resolve this by installing the listed dependencies. In my case this is what solved it:

sudo apt-get install -y xorg openbox xauth libx11-xcb-dev libx11-xcb-dev libfontenc-dev libxaw7-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 ssh