Overview

Request 979247 accepted

Pulling in changes from @gmbr3.


Dominique Leuenberger's avatar

5+- added missing %channgelog section to specfile

you'r 'n'-key is stuck :)


Dominique Leuenberger's avatar

+%description 35+This repository hosts the official Direct3D 12 headers. These headers are made available under the MIT license rather than the traditional Windows SDK license. Additionally, this repository hosts several helpers for using these headers. Make sure that you visit the DirectX Landing Page for more resources for DirectX developers.

This is a package, not a repository


Scott Bradnick's avatar

That's Microsoft's verbiage from the GitHub repo.


Dominique Leuenberger's avatar

That's no argument :)


Dominique Leuenberger's avatar
39+
40+%build
41+CXXFLAGS="$CXXFLAGS -fno-lto" meson . build -Dbuild-test=false --prefix /usr
42+ninja -C build
43+
44+%install
45+%if 0%{?suse_version} > 1500
46+meson install -C build --destdir "%{buildroot}"
47+%else
48+DESTDIR="%{buildroot}" meson install -C build 
49+%endif

Doesn't

%meson
%meson_build

%install
%meson_install

work?


Scott Bradnick's avatar

It's finicky; wouldn't build correctly in Leap (based off the version of meson available, at the time) w/o those provisions. Could easily be possible

%meson
%meson_build

%install
%meson_install

works fine and accounts for that, but at the time what you see now is what I had to (?) do to get it working.

EDIT1: tried to use that and it complains "ERROR: Current directory is not a meson build directory: /home/abuild/rpmbuild/BUILD/DirectX-Headers-1.600.10/x86_64-suse-linux."

EDIT2: I was using it wrong ; looking @ https://fedoraproject.org/wiki/Packaging:Meson I understand what you're suggesting better. Still fails over all, but not as immediately.

EDIT3: It was just a lack of disabling the pre-testing:

%build
%meson -Dbuild-test=false
%meson_build

%install
%meson_install

works; at least for TW x86_64.


Dominique Leuenberger's avatar

59+%{_libdir}/libDirectX-Guids.a

Static libs. no chance otherwise?


Scott Bradnick's avatar

The build says this:

[   23s] ninja: Entering directory `build'
[   24s] [1/2] Compiling C++ object libDirectX-Guids.a.p/src_dxguids.cpp.o
[   24s] [2/2] Linking static target libDirectX-Guids.a

I won't pretend I know 100% what that means and/or some alternate way to handle it šŸ™ƒ


Jan Engelhardt's avatar

A chance yes, but (with my somewhat Microsoft experience hat on) this one really isn't worth it, since it's just about 1600 bytes of static data and no code, the rest is debug info and almost 30K of ELF overhead.


Stefan Dirsch's avatar

@sbradnick Could you take care of the issues that have been mentioned here? It's your package after all. ;-)


Scott Bradnick's avatar

Already working on it šŸ‘Œ

I'm not really sure what Jan is getting at though šŸ˜£w/o libDirectX-Guids.a the whole thing falls apart, iirc. I do remember fighting with that specifically back when I started with this and vaguely recall that while DirectX-Headers would technically build w/o it (I think) - Mesa build either failed or what they provided didn't result in d3d12 actually working.

Is there some sort of problem with what it's doing?


Jan Engelhardt's avatar

libDirectX-Guids contains just a .rodata section and not much else. It's full of GUIDs, and the GUIDs won't be changing ever. There is no security update argument to be made for this library.

Were this all a C++ project, we'd have definitions like inline constexpr GUID IID_xyz = {0,1,2,3}; in the header file, the C++ compiler would implicitly generate (ELF) symbols whenever IID_xyz is used, and would also implicitly collapse duplicate definitions of IID_xyz again during link stages.

But you can't have nice things in CĀ ā€” especially not with aggregates. In a sense, dxguids could be thought of as a "header-only library", with the that half of the header being in an .a file instead of .h because of C's limitations.

Request History
Scott Bradnick's avatar

sbradnick created request

Pulling in changes from @gmbr3.


Factory Auto's avatar

factory-auto added opensuse-review-team as a reviewer

Please review sources


Factory Auto's avatar

factory-auto accepted review

Check script succeeded


Saul Goodman's avatar

licensedigger accepted review

ok


Dominique Leuenberger's avatar

dimstar_suse added openSUSE:Factory:Staging:adi:47 as a reviewer

Being evaluated by staging project "openSUSE:Factory:Staging:adi:47"


Dominique Leuenberger's avatar

dimstar_suse accepted review

Picked "openSUSE:Factory:Staging:adi:47"


Dominique Leuenberger's avatar

dimstar accepted review


Dominique Leuenberger's avatar

dimstar_suse accepted review

Staging Project openSUSE:Factory:Staging:adi:47 got accepted.


Dominique Leuenberger's avatar

dimstar_suse approved review

Staging Project openSUSE:Factory:Staging:adi:47 got accepted.


Dominique Leuenberger's avatar

dimstar_suse accepted request

Staging Project openSUSE:Factory:Staging:adi:47 got accepted.

openSUSE Build Service is sponsored by