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

Additional libraries required during install on Ubuntu #296

Closed
mintel1 opened this issue Apr 27, 2024 · 3 comments · Fixed by #297
Closed

Additional libraries required during install on Ubuntu #296

mintel1 opened this issue Apr 27, 2024 · 3 comments · Fixed by #297
Labels
build Issue related to build system infrastructure

Comments

@mintel1
Copy link
Collaborator

mintel1 commented Apr 27, 2024

Hi,

I needed a few attempts to complete the install last night when using a newly installed ubuntu box.

Below is a snippet of the logs from when I ran
Morpheus$ conan install ./ -pr:h .conan2/profiles/gcc/12/x64-libstdc++11-debug -pr:b .conan2/profiles/gcc/12/x64-libstdc++11-debug --build missing

It may be that these were system libraries which are my responsibility to install - perhaps there's a higher level package I could have installed which would have covered several/most/all of these libraries, but it would be good to know if these should be part of the conan dependencies or not.

System details:

OS: Ubuntu 22.04.4 LTS x86_64
Kernel: 5.15.0-105-generic
CPU: Intel Xeon E3-1246 v3 (8) @ 3.900GHz
GPU: Intel HD Graphics
Memory: 296MiB / 31954MiB

Log snippet:

Build requirements
    autoconf/2.71#f9307992909d7fb3df459340f1932809:da39a3ee5e6b4b0d3255bfef95601890afd80709#5b77f70c17ad1741f5845d4e468a347e - Download (conancenter)
    automake/1.16.5#058bda3e21c36c9aa8425daf3c1faf50:9a4eb3c8701508aa9458b1a73d0633783ecc2270#9719e51a6a62041af6a63e00eef35434 - Download (conancenter)
    b2/4.10.1#a41eecb267963ddf518e3c177eae60e1:63fead0844576fc02943e16909f08fcdddd6f44b#a31a98f757dcf4d3f03ed629ccde26b7 - Download (conancenter)
    cmake/3.28.1#92f79424d7b65b12a84a2180866c3a78:63fead0844576fc02943e16909f08fcdddd6f44b#501f62ef1d3711dd838dc1d91a2d866e - Download (conancenter)
    cmake/3.29.2#2b84343440461e8c5952c034d896fb67:63fead0844576fc02943e16909f08fcdddd6f44b#95e1807ae1256d7552e8ad0fd5d14b57 - Download (conancenter)
    gnu-config/cci.20210814#dc430d754f465e8c74463019672fb97b:da39a3ee5e6b4b0d3255bfef95601890afd80709#22618e30bd9e326eb95e824dc90cc860 - Download (conancenter)
    libtool/2.4.7#08316dad5c72c541ed21e039e4cf217b:1a9fda660de0c747d126d629ab86cd194228796f - Build
    m4/1.4.19#b38ced39a01e31fef5435bc634461fd2:6c3784688ce1ae7a69d803259982d21dd8171d61 - Build
    meson/1.2.2#04bdfb85d665c82b08a3510aee3ffd19:da39a3ee5e6b4b0d3255bfef95601890afd80709#97f4a23dd2d942f83e5344b1ca496ce7 - Download (conancenter)
    meson/1.2.3#aad1203ff72cd2dd1b43e5dfad9783a1:da39a3ee5e6b4b0d3255bfef95601890afd80709#fa41634f4bb79e8b8ceae8ff1d3b0151 - Download (conancenter)
    meson/1.4.0#024dfac41ea5570cb1aec3ea6fe34d0a:da39a3ee5e6b4b0d3255bfef95601890afd80709#91b870cdcf4edb1a302a2ef7a0514791 - Download (conancenter)
    mold/2.4.0#16ff0b0281befdc144c53dce61f34251:c4e96d7c26ddb2ea46683a3b57b5f897ed54323c - Build
    ninja/1.11.1#77587f8c8318662ac8e5a7867eb4be21:6c3784688ce1ae7a69d803259982d21dd8171d61 - Build
    pkgconf/2.0.3#f996677e96e61e6552d85e83756c328b:d64aaee87d753dff24e174b1e2aba3ff67a2d980 - Build
    pkgconf/2.1.0#27f44583701117b571307cf5b5fe5605:d64aaee87d753dff24e174b1e2aba3ff67a2d980 - Build
    xxhash/0.8.2#03fd1c9a839b3f9cdf5ea9742c312187:34a2816bab9a0a8e1bd0395709bb5a7f3746f67f - Build
    zlib/1.3.1#f52e03ae3d251dec704634230cd806a2:1a9fda660de0c747d126d629ab86cd194228796f - Build
Skipped binaries
    xorg-macros/1.19.3
opengl/system: System requirements:  already installed
dpkg-query: no packages found matching libx11-xcb-dev
dpkg-query: no packages found matching libfontenc-dev
dpkg-query: no packages found matching libice-dev
dpkg-query: no packages found matching libsm-dev
dpkg-query: no packages found matching libxaw7-dev
dpkg-query: no packages found matching libxcomposite-dev
dpkg-query: no packages found matching libxcursor-dev
dpkg-query: no packages found matching libxdamage-dev
dpkg-query: no packages found matching libxext-dev
dpkg-query: no packages found matching libxfixes-dev
dpkg-query: no packages found matching libxi-dev
dpkg-query: no packages found matching libxinerama-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
dpkg-query: no packages found matching libxpm-dev
dpkg-query: no packages found matching libxrandr-dev
dpkg-query: no packages found matching libxrender-dev
dpkg-query: no packages found matching libxres-dev
dpkg-query: no packages found matching libxss-dev
dpkg-query: no packages found matching libxt-dev
dpkg-query: no packages found matching libxtst-dev
dpkg-query: no packages found matching libxv-dev
dpkg-query: no packages found matching libxxf86vm-dev
dpkg-query: no packages found matching libxcb-glx0-dev
dpkg-query: no packages found matching libxcb-render0-dev
dpkg-query: no packages found matching libxcb-render-util0-dev
dpkg-query: no packages found matching libxcb-xkb-dev
dpkg-query: no packages found matching libxcb-icccm4-dev
dpkg-query: no packages found matching libxcb-image0-dev
dpkg-query: no packages found matching libxcb-keysyms1-dev
dpkg-query: no packages found matching libxcb-randr0-dev
dpkg-query: no packages found matching libxcb-shape0-dev
dpkg-query: no packages found matching libxcb-sync-dev
dpkg-query: no packages found matching libxcb-xfixes0-dev
dpkg-query: no packages found matching libxcb-xinerama0-dev
dpkg-query: no packages found matching libxcb-dri3-dev
dpkg-query: no packages found matching uuid-dev
dpkg-query: no packages found matching libxcb-cursor-dev
dpkg-query: no packages found matching libxcb-dri2-0-dev
dpkg-query: no packages found matching libxcb-dri3-dev
dpkg-query: no packages found matching libxcb-present-dev
dpkg-query: no packages found matching libxcb-composite0-dev
dpkg-query: no packages found matching libxcb-ewmh-dev
dpkg-query: no packages found matching libxcb-res0-dev
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
ERROR: xorg/system: Error in system_requirements() method, line 28
	apt.install(["libx11-dev", "libx11-xcb-dev", "libfontenc-dev", "libice-dev", "libsm-dev", "libxau-dev", "libxaw7-dev",
	ConanException: Command 'apt-get update' failed

Thanks!

@mintel1 mintel1 added the build Issue related to build system infrastructure label Apr 27, 2024
@Twon
Copy link
Owner

Twon commented Apr 28, 2024

So it turns out Conan does have a mechanism for installing system dependencies which I was not aware of: https://docs.conan.io/2/reference/conanfile/methods/system_requirements.html

Any example of this is available here: https://github.com/conan-io/conan-center-index/blob/master/recipes/xorg/all/conanfile.py

I've raised a PR here which specifies system requirements for open gl and then removes the manual step to install these from the CI to verify it works: #297

@Twon
Copy link
Owner

Twon commented Apr 28, 2024

Also worth adding is that the error message indicates apt-get update failed which means it may not have the required sudo permissions. These can be enabled directly in your Conan config by adding:

tools.system.package_manager:mode = install
tools.system.package_manager:sudo = True

That is set for the CI here:

echo "tools.system.package_manager:mode = install" >> .conan2/global.conf

@Twon
Copy link
Owner

Twon commented May 6, 2024

For now, what I have done is allow render systems to be enabled/disabled via Conan and CMake config. By disabling the render system the dependencies they require are now disabled. This gives users a mechanism for progressively disabling render systems to reduce dependencies to the minimal set to increase the chance of successfully running, where by they can enable one by one to see which succeed: #304

@Twon Twon closed this as completed in #297 May 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issue related to build system infrastructure
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants