commit:     fcea6dadf4e471de98323346f9855f7c0efedd72
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 27 01:42:28 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Jun 27 03:48:59 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fcea6dad

x11-drivers/nvidia-drivers: update and install vulkan icd for USE=-X

Not really tested, but it should be harmless vs not having the file.

Skipping revbump, letting it propagate on kernel upgrades / bumps
(470 and 525 are bumped in next commits). Please rebuild if want this
now for other versions.

For 390.x the icd is a template, while the newer drivers had hardcoded
libGLX, but docs mentions libEGL is usable for all versions (unlikely
to be useful for 390.x given its partial wayland support is broken).

Closes: https://bugs.gentoo.org/909181
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild       | 9 +++------
 x11-drivers/nvidia-drivers/nvidia-drivers-470.182.03-r2.ebuild | 9 ++++-----
 x11-drivers/nvidia-drivers/nvidia-drivers-525.116.04-r2.ebuild | 8 ++++----
 x11-drivers/nvidia-drivers/nvidia-drivers-525.47.27.ebuild     | 8 ++++----
 x11-drivers/nvidia-drivers/nvidia-drivers-535.54.03.ebuild     | 8 ++++----
 5 files changed, 19 insertions(+), 23 deletions(-)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild
index 782cd04ec2cb..44a0ef4ec290 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild
@@ -187,7 +187,8 @@ src_prepare() {
                
nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
                > "${T}"/nvidia-persistenced.service || die
 
-       sed 's/__NV_VK_ICD__/libGLX_nvidia.so.0/' \
+       # use alternative vulkan icd option if USE=-X (bug #909181)
+       sed "s/__NV_VK_ICD__/lib$(usex X GLX EGL)_nvidia.so.0/" \
                nvidia_icd.json.template > nvidia_icd.json || die
 
        # 390 has legacy glx needing a modified .conf (bug #713546)
@@ -256,11 +257,7 @@ src_install() {
        )
 
        local skip_files=(
-               # nvidia_icd(vulkan): skip with -X too as it uses libGLX_nvidia
-               $(usev !X "
-                       libGLX_nvidia libglx
-                       libnvidia-ifr
-                       nvidia_icd.json")
+               $(usev !X "libGLX_nvidia libglx libnvidia-ifr")
                libGLX_indirect # non-glvnd unused fallback
                libnvidia-gtk nvidia-{settings,xconfig} # built from source
                libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.182.03-r2.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-470.182.03-r2.ebuild
index c81eb65e5664..34be931dbd93 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.182.03-r2.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.182.03-r2.ebuild
@@ -189,6 +189,9 @@ src_prepare() {
                
nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
                > "${T}"/nvidia-persistenced.service || die
 
+       # use alternative vulkan icd option if USE=-X (bug #909181)
+       use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die
+
        # enable nvidia-drm.modeset=1 by default with USE=wayland
        cp "${FILESDIR}"/nvidia-470.conf "${T}"/nvidia.conf || die
        use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || 
die
@@ -252,11 +255,7 @@ src_install() {
        )
 
        local skip_files=(
-               # nvidia_icd/layers(vulkan): skip with -X too as it uses 
libGLX_nvidia
-               $(usev !X "
-                       libGLX_nvidia libglxserver_nvidia
-                       libnvidia-ifr
-                       nvidia_icd.json nvidia_layers.json")
+               $(usev !X "libGLX_nvidia libglxserver_nvidia libnvidia-ifr")
                $(usev !wayland libnvidia-vulkan-producer)
                libGLX_indirect # non-glvnd unused fallback
                libnvidia-gtk nvidia-{settings,xconfig} # built from source

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.116.04-r2.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-525.116.04-r2.ebuild
index 28e79dd467aa..61453ca0a97d 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.116.04-r2.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.116.04-r2.ebuild
@@ -201,6 +201,9 @@ src_prepare() {
                > "${T}"/nvidia-persistenced.service || die
        use !amd64 || sed -i "s|/usr|${EPREFIX}/opt|" 
systemd/system/nvidia-powerd.service || die
 
+       # use alternative vulkan icd option if USE=-X (bug #909181)
+       use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die
+
        # enable nvidia-drm.modeset=1 by default with USE=wayland
        cp "${FILESDIR}"/nvidia-470.conf "${T}"/nvidia.conf || die
        use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || 
die
@@ -296,10 +299,7 @@ src_install() {
        )
 
        local skip_files=(
-               # nvidia_icd/layers(vulkan): skip with -X too as it uses 
libGLX_nvidia
-               $(usev !X "
-                       libGLX_nvidia libglxserver_nvidia
-                       nvidia_icd.json nvidia_layers.json")
+               $(usev !X "libGLX_nvidia libglxserver_nvidia")
                $(usev !wayland libnvidia-vulkan-producer)
                libGLX_indirect # non-glvnd unused fallback
                libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from 
source

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.47.27.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-525.47.27.ebuild
index 24511aa21df0..0528f317bbca 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.47.27.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.47.27.ebuild
@@ -202,6 +202,9 @@ src_prepare() {
                > "${T}"/nvidia-persistenced.service || die
        use !amd64 || sed -i "s|/usr|${EPREFIX}/opt|" 
systemd/system/nvidia-powerd.service || die
 
+       # use alternative vulkan icd option if USE=-X (bug #909181)
+       use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die
+
        # enable nvidia-drm.modeset=1 by default with USE=wayland
        cp "${FILESDIR}"/nvidia-470.conf "${T}"/nvidia.conf || die
        use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || 
die
@@ -297,10 +300,7 @@ src_install() {
        )
 
        local skip_files=(
-               # nvidia_icd/layers(vulkan): skip with -X too as it uses 
libGLX_nvidia
-               $(usev !X "
-                       libGLX_nvidia libglxserver_nvidia
-                       nvidia_icd.json nvidia_layers.json")
+               $(usev !X "libGLX_nvidia libglxserver_nvidia")
                $(usev !wayland libnvidia-vulkan-producer)
                libGLX_indirect # non-glvnd unused fallback
                libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from 
source

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.54.03.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-535.54.03.ebuild
index 0839272da96a..1e24166af1ae 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.54.03.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.54.03.ebuild
@@ -204,6 +204,9 @@ src_prepare() {
                > "${T}"/nvidia-persistenced.service || die
        use !amd64 || sed -i "s|/usr|${EPREFIX}/opt|" 
systemd/system/nvidia-powerd.service || die
 
+       # use alternative vulkan icd option if USE=-X (bug #909181)
+       use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die
+
        # enable nvidia-drm.modeset=1 by default with USE=wayland
        cp "${FILESDIR}"/nvidia-470.conf "${T}"/nvidia.conf || die
        use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || 
die
@@ -300,10 +303,7 @@ src_install() {
        )
 
        local skip_files=(
-               # nvidia_icd/layers(vulkan): skip with -X too as it uses 
libGLX_nvidia
-               $(usev !X "
-                       libGLX_nvidia libglxserver_nvidia
-                       nvidia_icd.json nvidia_layers.json")
+               $(usev !X "libGLX_nvidia libglxserver_nvidia")
                $(usev !wayland libnvidia-vulkan-producer)
                libGLX_indirect # non-glvnd unused fallback
                libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from 
source

Reply via email to