media-libs/vulkan-loader: Fix the installation directory of the layers
authorNick Sarnie <sarnex@gentoo.org>
Sun, 22 Apr 2018 22:58:35 +0000 (18:58 -0400)
committerNick Sarnie <sarnex@gentoo.org>
Sun, 22 Apr 2018 23:03:30 +0000 (19:03 -0400)
Upstream installs them into ${prefix}/etc, but these are not configuration files. They should be in the data root directory.

This change is based on an idea from stephan wezel <s.wezel@web.de>

Bug: https://bugs.gentoo.org/619124

Package-Manager: Portage-2.3.31, Repoman-2.3.9

media-libs/vulkan-loader/files/vulkan-loader-Fix-layers-install-directory.patch [new file with mode: 0644]
media-libs/vulkan-loader/vulkan-loader-1.1.70.0-r1.ebuild [new file with mode: 0644]
media-libs/vulkan-loader/vulkan-loader-9999.ebuild

diff --git a/media-libs/vulkan-loader/files/vulkan-loader-Fix-layers-install-directory.patch b/media-libs/vulkan-loader/files/vulkan-loader-Fix-layers-install-directory.patch
new file mode 100644 (file)
index 0000000..193a8e5
--- /dev/null
@@ -0,0 +1,26 @@
+From 4ae095d8d3e668311b3db3657af753dfb39a149c Mon Sep 17 00:00:00 2001
+From: Nick Sarnie <sarnex@gentoo.org>
+Date: Sun, 22 Apr 2018 18:44:48 -0400
+Subject: [PATCH] Make the layers install into the data root directory
+
+Signed-off-by: Nick Sarnie <sarnex@gentoo.org>
+---
+ layers/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt
+index 9ade6a03..c1a3cedd 100644
+--- a/layers/CMakeLists.txt
++++ b/layers/CMakeLists.txt
+@@ -142,7 +142,7 @@ if(UNIX)
+                 VERBATIM
+                 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/linux/${config_file}.json
+                 )
+-            install(FILES ${CMAKE_CURRENT_BINARY_DIR}/staging-json/${config_file}.json DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/vulkan/explicit_layer.d)
++            install(FILES ${CMAKE_CURRENT_BINARY_DIR}/staging-json/${config_file}.json DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/vulkan/explicit_layer.d)
+         endforeach(config_file)
+     endif()
+ endif()
+-- 
+2.17.0
+
diff --git a/media-libs/vulkan-loader/vulkan-loader-1.1.70.0-r1.ebuild b/media-libs/vulkan-loader/vulkan-loader-1.1.70.0-r1.ebuild
new file mode 100644 (file)
index 0000000..980db94
--- /dev/null
@@ -0,0 +1,65 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python3_{4,5,6} )
+
+if [[ "${PV}" == "9999" ]]; then
+       EGIT_REPO_URI="https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers.git"
+       inherit git-r3
+else
+       KEYWORDS="~amd64"
+       SRC_URI="https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/archive/sdk-${PV}.tar.gz -> ${P}.tar.gz"
+       S="${WORKDIR}/Vulkan-LoaderAndValidationLayers-sdk-${PV}"
+fi
+
+inherit python-any-r1 cmake-multilib
+
+DESCRIPTION="Vulkan Installable Client Driver (ICD) Loader"
+HOMEPAGE="https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="demos layers wayland X"
+REQUIRED_USE="demos? ( X )"
+
+RDEPEND=""
+DEPEND="${PYTHON_DEPS}
+       demos? ( dev-util/glslang:=[${MULTILIB_USEDEP}] )
+       layers? (
+                       dev-util/glslang:=[${MULTILIB_USEDEP}]
+                       >=dev-util/spirv-tools-2018.2-r1:=[${MULTILIB_USEDEP}]
+               )
+       wayland? ( dev-libs/wayland:=[${MULTILIB_USEDEP}] )
+       X? (
+               x11-libs/libX11:=[${MULTILIB_USEDEP}]
+               x11-libs/libXrandr:=[${MULTILIB_USEDEP}]
+       )"
+
+PATCHES=(
+               "${FILESDIR}/${P}-Dont-require-glslang-if-not-building-layers.patch"
+               "${FILESDIR}/${PN}-Fix-layers-install-directory.patch"
+               "${FILESDIR}/${PN}-Use-a-file-to-get-the-spirv-tools-commit-ID.patch"
+       )
+
+multilib_src_configure() {
+       local mycmakeargs=(
+               -DCMAKE_SKIP_RPATH=True
+               -DBUILD_TESTS=False
+               -DBUILD_LAYERS=$(usex layers)
+               -DBUILD_DEMOS=$(usex demos)
+               -DBUILD_VKJSON=False
+               -DBUILD_LOADER=True
+               -DBUILD_WSI_MIR_SUPPORT=False
+               -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland)
+               -DBUILD_WSI_XCB_SUPPORT=$(usex X)
+               -DBUILD_WSI_XLIB_SUPPORT=$(usex X)
+       )
+       cmake-utils_src_configure
+}
+
+multilib_src_install() {
+       keepdir /etc/vulkan/icd.d
+
+       cmake-utils_src_install
+}
index b83dbcb76bcd577fefcfb120f6e0e39328cfc943..6d43117ed79ab967f86373bda63bcb4655ef25e8 100644 (file)
@@ -36,7 +36,10 @@ DEPEND="${PYTHON_DEPS}
                x11-libs/libXrandr:=[${MULTILIB_USEDEP}]
        )"
 
-PATCHES=( "${FILESDIR}/${PN}-Use-a-file-to-get-the-spirv-tools-commit-ID.patch" )
+PATCHES=(
+               "${FILESDIR}/${PN}-Fix-layers-install-directory.patch"
+               "${FILESDIR}/${PN}-Use-a-file-to-get-the-spirv-tools-commit-ID.patch"
+       )
 
 multilib_src_configure() {
        local mycmakeargs=(