commit:     9c1e2bb5e15c833363367382e9f1c44b9eeae0a0
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Sun Jun  4 10:47:05 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sun Jun  4 13:35:43 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c1e2bb5

x11-drivers/nvidia-drivers: use sandbox.d for /dev/nvidiactl+/dev/char

/dev/nvidiactl been a long standing issue, sometime appearing in sneaky
ways when a revdeps is built with opencl/cuda support even though the
package itself does not use it.

And /dev/char is newly needed with >=nvidia-drivers-525.105.17 or
>=535.43.02, but not 530.41.03. The production branch's 525.105.17
is newer than ~arch's long-living 530 and led to this being overlooked
until it hit stable (older stable 525.89.02 was not affected) and
was unaware of this until rebuilt libomp[offload] with 535 today
(note that 535.43.02 is unkeyworded, it's a beta).

Need /dev/char rather than /dev/char/195:255 given it tries to remove
+ create a symlink and does not simply try to write there.

This is not meant to be a full coverage of nvidia devices and only
for those being a widespread problem. Special needs or addwrite
(typically to run tests) should be handled manually or using
cuda.eclass' cuda_add_sandbox.

Adding /dev/char to all versions even if not needed *yet* just so it's
not overlooked when nvidia spreads it to other branches (except 390
given it's EOL, not to mention has no cuda packages anymore).

Bug: https://bugs.gentoo.org/904292
Bug: https://bugs.gentoo.org/905436
Closes: https://bugs.gentoo.org/904944
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild           | 7 +++++++
 ...ivers-470.182.03.ebuild => nvidia-drivers-470.182.03-r1.ebuild} | 7 +++++++
 ...ivers-515.105.01.ebuild => nvidia-drivers-515.105.01-r1.ebuild} | 7 +++++++
 ...ivers-525.116.04.ebuild => nvidia-drivers-525.116.04-r1.ebuild} | 7 +++++++
 ...drivers-525.47.26.ebuild => nvidia-drivers-525.47.26-r1.ebuild} | 7 +++++++
 ...drivers-530.41.03.ebuild => nvidia-drivers-530.41.03-r1.ebuild} | 7 +++++++
 ...drivers-535.43.02.ebuild => nvidia-drivers-535.43.02-r1.ebuild} | 7 +++++++
 7 files changed, 49 insertions(+)

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild
index 94e0026feef8..3f4ed7b4373b 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.157.ebuild
@@ -518,6 +518,13 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers";
        # symlink non-versioned so nvidia-settings can use it even if 
misdetected
        dosym nvidia-application-profiles-${PV}-key-documentation \
                
${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation
+
+       # sandbox issues with /dev/nvidiactl are widespread and sometime
+       # affect revdeps of packages built with USE=opencl/cuda making it
+       # hard to manage in ebuilds (minimal set, ebuilds should handle
+       # manually if need others or addwrite)
+       insinto /etc/sandbox.d
+       newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl"'
 }
 
 pkg_preinst() {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.182.03.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-470.182.03-r1.ebuild
similarity index 98%
rename from x11-drivers/nvidia-drivers/nvidia-drivers-470.182.03.ebuild
rename to x11-drivers/nvidia-drivers/nvidia-drivers-470.182.03-r1.ebuild
index 0d0e1a3a178d..e9d5a5757f02 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.182.03.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.182.03-r1.ebuild
@@ -500,6 +500,13 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers";
 
        # don't attempt to strip firmware files (silences errors)
        dostrip -x ${paths[FIRMWARE]}
+
+       # sandbox issues with /dev/nvidiactl (and /dev/char wrt bug #904292)
+       # are widespread and sometime affect revdeps of packages built with
+       # USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
+       # ebuilds should handle manually if need others or addwrite)
+       insinto /etc/sandbox.d
+       newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/char"'
 }
 
 pkg_preinst() {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-515.105.01.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-515.105.01-r1.ebuild
similarity index 98%
rename from x11-drivers/nvidia-drivers/nvidia-drivers-515.105.01.ebuild
rename to x11-drivers/nvidia-drivers/nvidia-drivers-515.105.01-r1.ebuild
index f7417cec22da..50175f4e17e3 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-515.105.01.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-515.105.01-r1.ebuild
@@ -550,6 +550,13 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers";
 
        # don't attempt to strip firmware files (silences errors)
        dostrip -x ${paths[FIRMWARE]}
+
+       # sandbox issues with /dev/nvidiactl (and /dev/char wrt bug #904292)
+       # are widespread and sometime affect revdeps of packages built with
+       # USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
+       # ebuilds should handle manually if need others or addwrite)
+       insinto /etc/sandbox.d
+       newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/char"'
 }
 
 pkg_preinst() {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.116.04.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-525.116.04-r1.ebuild
similarity index 98%
rename from x11-drivers/nvidia-drivers/nvidia-drivers-525.116.04.ebuild
rename to x11-drivers/nvidia-drivers/nvidia-drivers-525.116.04-r1.ebuild
index 6ae8b90eb1a9..ce05c7a71043 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.116.04.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.116.04-r1.ebuild
@@ -548,6 +548,13 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers";
 
        # don't attempt to strip firmware files (silences errors)
        dostrip -x ${paths[FIRMWARE]}
+
+       # sandbox issues with /dev/nvidiactl (and /dev/char wrt bug #904292)
+       # are widespread and sometime affect revdeps of packages built with
+       # USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
+       # ebuilds should handle manually if need others or addwrite)
+       insinto /etc/sandbox.d
+       newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/char"'
 }
 
 pkg_preinst() {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.47.26.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-525.47.26-r1.ebuild
similarity index 98%
rename from x11-drivers/nvidia-drivers/nvidia-drivers-525.47.26.ebuild
rename to x11-drivers/nvidia-drivers/nvidia-drivers-525.47.26-r1.ebuild
index e20c5bdc0474..dd901326817b 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.47.26.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.47.26-r1.ebuild
@@ -549,6 +549,13 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers";
 
        # don't attempt to strip firmware files (silences errors)
        dostrip -x ${paths[FIRMWARE]}
+
+       # sandbox issues with /dev/nvidiactl (and /dev/char wrt bug #904292)
+       # are widespread and sometime affect revdeps of packages built with
+       # USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
+       # ebuilds should handle manually if need others or addwrite)
+       insinto /etc/sandbox.d
+       newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/char"'
 }
 
 pkg_preinst() {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-530.41.03.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-530.41.03-r1.ebuild
similarity index 98%
rename from x11-drivers/nvidia-drivers/nvidia-drivers-530.41.03.ebuild
rename to x11-drivers/nvidia-drivers/nvidia-drivers-530.41.03-r1.ebuild
index 5cf130c784c0..c1a57acccc87 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-530.41.03.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-530.41.03-r1.ebuild
@@ -462,6 +462,13 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers";
 
        # don't attempt to strip firmware files (silences errors)
        dostrip -x ${paths[FIRMWARE]}
+
+       # sandbox issues with /dev/nvidiactl (and /dev/char wrt bug #904292)
+       # are widespread and sometime affect revdeps of packages built with
+       # USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
+       # ebuilds should handle manually if need others or addwrite)
+       insinto /etc/sandbox.d
+       newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/char"'
 }
 
 pkg_preinst() {

diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.02.ebuild 
b/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.02-r1.ebuild
similarity index 98%
rename from x11-drivers/nvidia-drivers/nvidia-drivers-535.43.02.ebuild
rename to x11-drivers/nvidia-drivers/nvidia-drivers-535.43.02-r1.ebuild
index 2d8cc12953fd..f17a5d471821 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.02.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.02-r1.ebuild
@@ -482,6 +482,13 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers";
 
        # don't attempt to strip firmware files (silences errors)
        dostrip -x ${paths[FIRMWARE]}
+
+       # sandbox issues with /dev/nvidiactl (and /dev/char wrt bug #904292)
+       # are widespread and sometime affect revdeps of packages built with
+       # USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
+       # ebuilds should handle manually if need others or addwrite)
+       insinto /etc/sandbox.d
+       newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/char"'
 }
 
 pkg_preinst() {

Reply via email to