[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#884865: vulkan: Please include glslang, spirv-tools, and spirv-headers in vulkan source package



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 <brett@linuxturtle.net>

Reply to: