Skip to content

Deal with Nvidia legacy support introduced in XLibre Xserver 25.1.0 #99

@callmetango

Description

@callmetango

Describe the feature

We should somehow deal with the Nvidia legacy support introduced in XLibre Xserver 25.1.0. The changelog says:

In the new 25.1 series, we added optional support for the legacy proprietary Nvidia drivers v340, v370, and v470 too. To generally enable it, you have to pass the legacy_nvidia_padding flag to the Xserver build to re-add a struct field that is long gone. As a consequence, you may need to recompile other XLibre DDX drivers as well. No fear, your distribution of choice will very likely take care of this. For the support of the Nvidia v340 driver, you'll also have to pass the legacy_nvidia_340x build time option, which readds two internal functions used by this driver. Again, these steps are optional and only needed for the legacy Nvidia drivers.

I have been considering how we can deal with this.

  1. One possibility would be to hardwire the Nvidia legacy flags legacy_nvidia_padding and legacy_nvidia_340x into the ebuild. This would give us permanent support. The previously compiled drivers would have to be recompiled, but we could enforce that via a new revision of xlibre-drivers and the dependency on all 25.0.x driver versions.

  2. Another option would be a use flag such as “nvidia-legacy.” However, I don't yet have any idea how we could then handle the drivers. Ultimately, we would have to recompile them every time the use flag was changed.

  3. A third option would be to maintain two parallel ebuilds analogous to the webkit-gtk ebuilds with different revision numbers at the end per ABI. But that sounds kind of strange.

  4. A fourth option would be to use the “Multiple ABIs for X.Org” scenario in Sub-slots and Slot-Operators - Gentoo wiki. However, that sounds quite complicated

@stefan11111 What do you think?

It should be done because

Changing the legacy_nvidia_padding of the XLibre Xserver needs a recompilation of the accompanying drivers. If we fail to do so, they may be broken and XLibre won't start.

What are the alternatives?

No response

Additional context

XLibre XServer 25.1 Changes · X11Libre/xserver Wiki

Extra fields

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions