dxvk icon indicating copy to clipboard operation
dxvk copied to clipboard

Install headers and pkg-config files, MkII

Open flibitijibibo opened this issue 1 year ago • 10 comments

This reworks #3325 to apply to the latest dxvk revision, and is based on #3738 and #3743. As a result, only the last 4 commits are actually for this specific PR.

CC @smcv, I had to adjust a few of the patches, so we'll need to re-confirm the signoffs for those.

Fixes #3323

Part of #3451

Supercedes #3325

flibitijibibo avatar Feb 04 '24 18:02 flibitijibibo

I have no problem with the versions of my commits that appear here. Feel free to add a Co-authored-by, or not, as you prefer.

smcv avatar Feb 05 '24 12:02 smcv

On #3325 I wrote:

It's a bit unfortunate that [the name prefix for *.so] is dxvk_ and [the name prefix for *.pc] is dxvk-. I've kept the naming from the Fedora packaging for now, but I'd be very tempted to change it to dxvk_d3d9.pc, dxvk_glfw_dxgi.pc and so on, to be consistent with the library names and avoid having two subtly different name-prefixes.

What do maintainers think about that? This PR is changing the pkg-config API anyway, so if there was a time to make that change, now would probably be that time.

smcv avatar Feb 05 '24 12:02 smcv

I'd be okay with doing _ over -, I'll check with Neal to see if this is an okay change for Fedora.

flibitijibibo avatar Feb 05 '24 13:02 flibitijibibo

I'd be okay with doing _ over -, I'll check with Neal to see if this is an okay change for Fedora.

Does Meson's pkgconfig generator not support setting Provides names? It's documented in pc(5).

Conan-Kudo avatar Feb 05 '24 15:02 Conan-Kudo

Does Meson's pkgconfig generator not support setting Provides names? It's documented in pc(5).

Not as far as I can see in https://mesonbuild.com/Pkgconfig-module.html.

Does original freedesktop.org pkg-config support Provides, or are they a pkgconf-ism?

smcv avatar Feb 05 '24 15:02 smcv

I believe the way the equivalent of Provides was traditionally implemented is as a symlink oldname.pc -> newname.pc, as is done in the Debian packaging of sdl12-compat and sdl2-compat.

[edited to add]

sdl12_compat.pc does have Provides: sdl, and Debian uses pkgconf now, so maybe we don't actually need that symlink any more; but there are other modules (e.g. libpng, libplist, libxcrypt) for which the symlinks are still used, and there's no Provides in those cases.

smcv avatar Feb 05 '24 15:02 smcv

It was always part of the spec, but not implemented fully in pkg-config. pkgconf actually implemented it to work. You see this with pkg-config --provides sdl12-compat across the two implementations.

Conan-Kudo avatar Feb 05 '24 15:02 Conan-Kudo

Rebased and updated with the latest changes from the other two PRs.

Did we ever make a call with the - v. _ change? Left that part alone for now.

flibitijibibo avatar Mar 01 '24 19:03 flibitijibibo

Well, I'm shipping dxvk-native-2.3 now with -, so... 🤷🏾‍♂️

Conan-Kudo avatar Mar 01 '24 20:03 Conan-Kudo

Latest push is just a rebase, this PR now only depends on #3743

flibitijibibo avatar May 13 '24 13:05 flibitijibibo

If you fix that comment and the commit commit names, I will merge it.

misyltoad avatar May 21 '24 17:05 misyltoad

Looks like Meson made the choice for us:

src/dxgi/meson.build:24:0: ERROR: Invalid Shared library version "0.2.3.1". Must be of the form X.Y.Z where all three are numbers. Y and Z are optional.

So I guess I need to revert that...? Also, what were the commit/comment changes I needed to make, I couldn't see them in this thread.

flibitijibibo avatar May 21 '24 17:05 flibitijibibo

Just make the commit names match up with the style of the rest of the repo.

misyltoad avatar May 21 '24 17:05 misyltoad

Looks like Meson made the choice for us:

src/dxgi/meson.build:24:0: ERROR: Invalid Shared library version "0.2.3.1". Must be of the form X.Y.Z where all three are numbers. Y and Z are optional.

So I guess I need to revert that...? Also, what were the commit/comment changes I needed to make, I couldn't see them in this thread.

lol let's make it 0.231 or whatever then

misyltoad avatar May 21 '24 17:05 misyltoad

Latest push changes to be the '231' style, and adjusts the commit tag to use [].

flibitijibibo avatar May 21 '24 17:05 flibitijibibo

One final nit, the tarball for Steam Runtime binaries contains a .git file inside of the include folder :P

misyltoad avatar May 21 '24 17:05 misyltoad

Added an exclude_files to the directx install block to ignore a possible .git file when packaging a repo clone (shouldn't happen with source tarballs).

flibitijibibo avatar May 21 '24 18:05 flibitijibibo