Bug 29691 - building Khronos packages(SPIRV, Vulkan, glslang) guide
Summary: building Khronos packages(SPIRV, Vulkan, glslang) guide
Status: RESOLVED INVALID
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: Normal minor
Target Milestone: Mageia 9
Assignee: Mageia Bug Squad
QA Contact:
URL: https://github.com/KhronosGroup
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-11-23 10:13 CET by Aurelian R
Modified: 2022-02-12 19:34 CET (History)
2 users (show)

See Also:
Source RPM:
CVE:
Status comment:


Attachments
Khronos build steps (2.41 KB, text/plain)
2021-11-23 10:13 CET, Aurelian R
Details
specs, patches and script to build src.rpm for Khronos packages (24.18 KB, application/gzip)
2021-11-23 10:25 CET, Aurelian R
Details
updated scripts specs files (27.37 KB, application/gzip)
2021-12-05 22:39 CET, Aurelian R
Details

Description Aurelian R 2021-11-23 10:13:53 CET
Created attachment 13002 [details]
Khronos build steps

This is not about a bug but more like a guide on how to build the SDK releases of Khronos packages for Mageia Cauldron(might work just fine on Mageia 8 but I haven't tested that). I didn't know where to put it so I'll just post it here(hopefully I'll not get scolded for it and it may be useful to someone). 
 So, attached is a .txt file for the steps to take.
 While the latest SDK-1.2.198 is working as intended on my system(x86 arch), some other packages that depend on them may fail to be rebuild against the latest sdk( ex;warzone2100) and need patching.
 I will also attach a tarball that contains the modified spec/patch files for all of those packages and a script that downloads the source files and builds the source rpms for sdk-1.2.198. The included script has some comments and it should also work for older SDK releases with minimal change.

Regards.
Comment 1 Aurelian R 2021-11-23 10:25:21 CET
Created attachment 13003 [details]
specs, patches and script to build src.rpm for Khronos packages

List of generated rpms:

spirv-headers-1.5.5-1.814e728.mgaX9.src.rpm
spirv-tools-2021.4-1.mgaX9.src.rpm
glslang-11.7.0-1.c9706bd.mgaX9.src.rpm
spirv-llvm-translator-13.0.0-1.mgaX9.src.rpm
vulkan-headers-1.2.198-1.mgaX9.src.rpm
vulkan-loader-1.2.198.0-1.mgaX9.src.rpm
vulkan-tools-1.2.198.0-1.mgaX9.src.rpm
vulkan-validation-layers-1.2.198.0-1.mgaX9.src.rpm

And the following as being heavily depended on the ones above:

shaderc-2021.3-1.mgaX9.src.rpm
libclc-13.0.0-2.mgaX9.src.rpm
warzone2100-4.2.1-2.mgaX9.src.rpm
Comment 2 Aurelian R 2021-12-05 22:39:17 CET
Created attachment 13022 [details]
updated scripts specs files

  Attached is an updated version of the scripts and specs files mainly for Vulkan.
Changes:
1. The sdk-1.2.198.0 of Vulkan-Loader broke the back-compatibility with apps using older version of Vulkan-Headers(<1.2.193), so sdk-1.2.198.1 version has been released. While this new sdk does work fine with other Vulkan sdk-1.2.198.0 packages as far as I could test, it is build against Vulkan-Headers version 1.2.201 according to its scripts/know_good.json file. So naming scheme is not consistent anymore for Vulkan packages.
2. The main script now calls differently wget as it is not working as expected anymore with git.
3. For package OpenCL-Headers, in the script to generate the tarball I had to switch to git in order to get a proper date for files as wget will always show only the current date one pulls a file and not the actual date when the file was last changed on git. 
  I suspect there is some change in the KhronosGroup git on how it handles files requested trough wget or a browser for that matter. 
Regards.
Comment 3 Lewis Smith 2022-02-10 20:59:47 CET
Excuse this bug being left: it must have arrived at a bad moment and got overlooked at the time. Apologies.

It appears that this is a 'new package' request for Mageia. Can you confirm this? 
And if so, explain exactly what you are proposing. 'Khronos' seems to embrace a multitude of things:
 https://www.khronos.org/
Would *you* be willing to become its maintainer? All the things you have attached show you have the competence:
 https://wiki.mageia.org/en/Becoming_a_Mageia_Packager

CC: (none) => lewyssmith

Comment 4 Aurelian R 2022-02-11 10:29:48 CET
Well, I didn't meant this as a bug and posted this more like a guide on how to update Khronos software for Mageia as they have a cumbersome and a strong inter-dependency, and wanted to have it recorded somewhere, sorry if this wasn't the right place. It started with me wanting to upgrade a package on my system, not knowing what I was doing initially and ended up with more than asked for, which, once more, enforced my appreciation for the work done by Mageia's developers.

These packages aren't new to Mageia, just newer versions(btw, even those are already outdated as Vulkan API 1.3 has been released couple of weeks ago) and the whole thing posted here is (maybe?) to guide/help others and it is not a newer approach or anything else fancy.

As about becoming a packager, it is difficult for me to make a decision on such commitment as my skills are not that advanced for it. However, as a long time user of Mageia, I will keep trying to find solutions for the bugs I run into and post them on bugzilla. 

Thanks for keeping up the good work.
Regards.

PS: this bug entry may be closed(if you think so) as it can easily be found if anyone looks for keywords like vulkan, spirv ...
PS2: I also could update the scripts/specs for the newest releases of these packages(I already have them running on my system), unless this is not appropriate or is annoying for devs.
Comment 5 Morgan Leijström 2022-02-11 14:31:15 CET
Aurelian, we appreciate your efforts :)

Guides and howtos are not usually stored in bugs.

They will be much easier to find if you note them as wiki pages.

They can then also easier be both updated and extended in a clean way by both you and someone else who would like to help.

If you don not have access rights to wiki, ask :)

CC: (none) => fri

Comment 6 Aurelian R 2022-02-11 20:36:23 CET
  (In reply to Morgan Leijström from comment #5)
> Aurelian, we appreciate your efforts :)
> 
> Guides and howtos are not usually stored in bugs.
> 
> They will be much easier to find if you note them as wiki pages.
> 
> They can then also easier be both updated and extended in a clean way by
> both you and someone else who would like to help.
> 
> If you don not have access rights to wiki, ask :)

 Thanks for clarifications and suggestion, I will have a look around how other wiki pages on Mageia are formulated on specific topics and see what I can do.

I will close this bug so it will not dangle aimless around.

Resolution: (none) => INVALID
Status: NEW => RESOLVED

Comment 7 Lewis Smith 2022-02-12 19:34:35 CET
(In reply to Aurelian R from comment #6)
>   (In reply to Morgan Leijström from comment #5)
> > Aurelian, we appreciate your efforts :)
> > Guides and howtos are not usually stored in bugs.
> > They will be much easier to find if you note them as wiki pages.
> > If you don not have access rights to wiki, ask :)
Morgan's suggestion is sensible. I had no idea what this 'bug' involved.
I thought anyone with a Mageia account (say to raise a bug) could edit wikis; but may be wrong.

>  Thanks for clarifications and suggestion, I will have a look around how
> other wiki pages on Mageia are formulated on specific topics and see what I
> can do.
Wikis are easy to do, but the syntax is fiddly. It is necessary to have the appropriate syntax 'help' page open while writing, although many things become easy with use.

If you wish to create a wiki, you can do it in French. Ask me privately for help; and at worst, simply put up all your text and I will tidy it. Translation can follow.
To create a new page, simply type its [new] title, and the system offers to create it.

Note You need to log in before you can comment on or make changes to this bug.