conda-forge / mesalib-feedstock

A conda-smithy repository for mesalib.
BSD 3-Clause "New" or "Revised" License
2 stars 16 forks source link

Remove remaining CDTs #78

Open hmaarrfk opened 1 month ago

hmaarrfk commented 1 month ago

Comment:

Moreover, there must be an alternative to the mesa-libEGL(-devel) and mesa-libGL(-devel) CDT packages, as well as having an equivalent to mesa-libGLES(-devel) and mesa-libGLw(-devel) within Conda.

This is needed in order to drop these CDT packages for feedstocks directly needing the CDT Mesa libraries and headers during build without necessarily going through libglvnd.

From: https://github.com/conda-forge/staged-recipes/pull/25919#issuecomment-2137216163

@ehfd identified that there are likely cleanups that can be done on this recipe.

With this prompt, I've noticed we have a few things in yum_requirements.txt that we can remove.

PRs welcome.

ehfd commented 1 month ago

One thing I immediately see is the possibility to switch to xorg-libxxf86vm, an existing non-CDT feedstock.

ehfd commented 1 month ago

The main context of that writing is:

    # We assert that we didn't build screen rendering capabilities.
    # We want on-screen rendering capabilities to be hardware accelerated
    # but that will take more effort

Something needs to supply the libraries that are marked as test ! -f instead of the CDTs. Perhaps it could be a mesalib-stubs package which could be set as a build dependency but not as host or run.

    - test ! -f $PREFIX/lib/dri/kms_swrast_dri${SHLIB_EXT}  # [linux]
    - test ! -f $PREFIX/lib/dri/swrast_dri${SHLIB_EXT}      # [linux]
    - test ! -f $PREFIX/lib/libgbm${SHLIB_EXT}              # [linux]
    - test ! -f $PREFIX/lib/libGLESv1_CM${SHLIB_EXT}        # [linux]
    - test ! -f $PREFIX/lib/libGLESv2${SHLIB_EXT}           # [linux]
    - test ! -f $PREFIX/lib/libEGL${SHLIB_EXT}              # [linux]
    - test ! -f $PREFIX/lib/libGL${SHLIB_EXT}               # [linux]
    - test ! -f $PREFIX/lib/libGLESv1_CM.1${SHLIB_EXT}  # [osx]
    - test ! -f $PREFIX/lib/libGLESv2.2${SHLIB_EXT}     # [osx]
    - test ! -f $PREFIX/lib/libGL.1${SHLIB_EXT}         # [osx]

Edit: As long as libGLdispatch.so.0, libGL.so.1, libEGL.so.1, libGLESv1_CM.so.1, libGLESv2.so.2, libOpenGL.so.0, libGLX.so.0 (not necessarily exhaustive) are provided through libglvnd, I see absolutely no issues with removing the CDT packages. Recent versions of Fedora provide these libraries through glvnd, not mesa so I've missed it while looking at RHEL 7 and 8.

However, building the mesa libraries separate from libglvnd in a separate package is also fine because there still needs to be a default OpenGL provider, which Ubuntu or Fedora provides as libgl1-mesa, etc... with mesa. This will, then, completely replace the Mesa CDT libraries.

And libgbm.so.1 should still be built here.

ehfd commented 1 month ago

I understand that xorg-x11-proto-devel is the same as https://github.com/conda-forge/xorg-xorgproto-feedstock.

However, the issue is https://github.com/conda-forge/xorg-libxmu-feedstock/pull/10#issuecomment-2096079764.

And mesa-libglapi is something that should be built here.