Package: vulkan Severity: normal glslang and spirv-tools are needed for even the most trivial vulkan development, so they need to be packaged to make libvulkan-dev more useful. However, packaging them independently is currently problematic because the upstream repositories are not versioned, and a given release of Vulkan contains a nasty hard dependency on a specific git commit ID from the glslang and spirv-* repositories. Therefore, I'd like to propose that these tools be packaged as part of the existing vulkan source package.
Technically, this is easy, as the existing package already runs a "get-external.sh" script which fetches the appropriate git commit from the upstream repositories, and builds the tools in order to satisfy the dependency libVkLayer has on them. So all that's needed is to copy the result of this build into new binary packages, rather than throwing it away. This also makes for a sane way to version the tools, by assigning them the version of the vulkan release they were built for. I would suggest that new binary packages be created ("vulkan-glslang" and "vulkan-spirv", for example), rather than simply including the binaries in libvulkan-dev. Although it's tempting/easier to simply include them in libvulkan-dev, it turns out that glslang and spirv-tools are not explicitly vulkan tools. They can, in theory, also be used for OpenGL/CL, and someone may want to package them independently in the future (assuming the upstream versioning problems can be worked out), and this could cause a file conflict. It would be better if that potential conflict wasn't hidden inside the libvulkan-dev package, but instead was inside a package which explicitly names glslang and spirv, and could make a clean "conflicts-with" target. Thanks! -- Brett Johnson <br...@linuxturtle.net>