You are not logged in.

#1 2023-06-13 08:34:11

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 13,612

Simplifying aur mesa-git

All mesa packages have a problem : at buildtime they are linked against a specific llvm/clang version [1] and will fail at runtime unless the runtime-files for that version are installed.


Depending on sonames seems like a logical choice to solve this but has several  issues :
- repo llvm package doesn't provide sonames to pacman.
- mesa supports a wide range of llvm versions. which one is used/needed is determined at buildtime.
- sometimes upstream changes in llvm don't warrant a soname change but do break mesa .

Several methods to deal with this are used :
- repo mesa packages are rebuild by devs when llvm version changes.
- aur mesa-minimal-git uses this method also
- aur mesa-git uses a custom environment variable to determine which llvm variant it is going to be build against and run with.
     This complicates the PKGBUILD, doesn't work well with chroot builds and everything depending on .SRCINFO like aur webinterface and aur helpers .

All methods listed above suffer from having an impiicit dependency on the specific llvm version build against .

Any solution for this needs to be able to deal with multiple versions of llvm and ensure the version used at buildtime is present at runtime .
How can this be solved ?


[1] building without llvm support is possible but drastically reduces the usability. f.e all gallium drivers require llvm support .


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#2 2023-06-15 09:04:01

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 13,612

Re: Simplifying aur mesa-git

[off topic]
Looks like this will be one of those threads were I have readers but no feedback.
[end of off topic]

The obvious solution is to make the dependency explicit. Since the crtiical point is to ensure buildtime and runtime llvm versions are the same, determining pkgver & pkgrel of the llvm variant and adding a runtime depend on that seems the logical choice.

For clean chroot building users no longer need to hardcode to ensure their desired llvm variant is used, that's definitely an improvement.

Unsure if aur helpers can be used to build mesa-git using non-repo llvm versions with this method, will need testing to determnine that.

Overall I think this solution has enough benefits to try it out.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

Board footer

Powered by FluxBB