x11-drivers/nvidia-drivers: warn when abi_x86_32 is disabled

Profile had abi_x86_32 enabled by default for ~7 years (now removed),
and users may not necessarily have realized whether they needed it.

steam-overlay's steam-client-meta depends on nvidia's [abi_x86_32]
but wine* and other 32bit applications generally do not (typically
only check for virtual/opengl which only checks if mesa has it set,
or may check neither if depends on libglvnd directly).

Warn to miminize poor surprises to some extend.

Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
This commit is contained in:
Ionen Wolkens
2021-11-24 00:56:36 -05:00
parent d6b7fa6f12
commit bc69df3fdb
7 changed files with 69 additions and 11 deletions
@@ -359,7 +359,8 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
}
pkg_preinst() {
has_version "x11-drivers/nvidia-drivers[wayland]" && NV_HAD_WAYLAND=1
has_version "${CATEGORY}/${PN}[abi_x86_32]" && NV_HAD_ABI32=1
has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=1
use driver || return
linux-mod_pkg_preinst
@@ -389,7 +390,15 @@ pkg_postinst() {
elog "Other functions, like OpenGL, will continue to work."
fi
if use !abi_x86_32 && [[ ${NV_HAD_ABI32} ]]; then
elog
elog "USE=abi_x86_32 is disabled, 32bit applications will not be able to"
elog "use nvidia-drivers for acceleration without it (e.g. commonly used"
elog "with app-emulation/wine-*). Re-enable if needed."
fi
if [[ ${NV_HAD_WAYLAND} ]]; then
elog
elog "Support for EGLStream (egl-wayland) is no longer offered with legacy"
elog "nvidia-drivers. It is recommended to use nouveau drivers for wayland."
fi
@@ -360,6 +360,8 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
}
pkg_preinst() {
has_version "${CATEGORY}/${PN}[abi_x86_32]" && NV_HAD_ABI32=1
use driver || return
linux-mod_pkg_preinst
@@ -409,6 +411,13 @@ pkg_postinst() {
ewarn "https://www.nvidia.com/object/IO_32667.html"
fi
if use !abi_x86_32 && [[ ${NV_HAD_ABI32} ]]; then
elog
elog "USE=abi_x86_32 is disabled, 32bit applications will not be able to"
elog "use nvidia-drivers for acceleration without it (e.g. commonly used"
elog "with app-emulation/wine-*). Re-enable if needed."
fi
# Try to show this message only to users that may really need it
# given the workaround is discouraged and usage isn't widespread.
if use X && [[ ${REPLACING_VERSIONS} ]] &&
@@ -392,6 +392,9 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
}
pkg_preinst() {
has_version "${CATEGORY}/${PN}[abi_x86_32]" && NV_HAD_ABI32=1
has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=1
use driver || return
linux-mod_pkg_preinst
@@ -413,8 +416,6 @@ pkg_preinst() {
fi
done
rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
has_version "x11-drivers/nvidia-drivers[wayland]" && NV_HAD_WAYLAND=1
}
pkg_postinst() {
@@ -448,6 +449,13 @@ pkg_postinst() {
ewarn "https://www.nvidia.com/object/IO_32667.html"
fi
if use !abi_x86_32 && [[ ${NV_HAD_ABI32} ]]; then
elog
elog "USE=abi_x86_32 is disabled, 32bit applications will not be able to"
elog "use nvidia-drivers for acceleration without it (e.g. commonly used"
elog "with app-emulation/wine-*). Re-enable if needed."
fi
if use wayland && use driver && [[ ! ${NV_HAD_WAYLAND} ]]; then
elog
elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
@@ -387,6 +387,9 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
}
pkg_preinst() {
has_version "${CATEGORY}/${PN}[abi_x86_32]" && NV_HAD_ABI32=1
has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=1
use driver || return
linux-mod_pkg_preinst
@@ -408,8 +411,6 @@ pkg_preinst() {
fi
done
rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
has_version "x11-drivers/nvidia-drivers[wayland]" && NV_HAD_WAYLAND=1
}
pkg_postinst() {
@@ -445,6 +446,13 @@ pkg_postinst() {
ewarn "https://www.nvidia.com/object/IO_32667.html"
fi
if use !abi_x86_32 && [[ ${NV_HAD_ABI32} ]]; then
elog
elog "USE=abi_x86_32 is disabled, 32bit applications will not be able to"
elog "use nvidia-drivers for acceleration without it (e.g. commonly used"
elog "with app-emulation/wine-*). Re-enable if needed."
fi
if use wayland && use driver && [[ ! ${NV_HAD_WAYLAND} ]]; then
elog
elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
@@ -387,6 +387,9 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
}
pkg_preinst() {
has_version "${CATEGORY}/${PN}[abi_x86_32]" && NV_HAD_ABI32=1
has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=1
use driver || return
linux-mod_pkg_preinst
@@ -408,8 +411,6 @@ pkg_preinst() {
fi
done
rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
has_version "x11-drivers/nvidia-drivers[wayland]" && NV_HAD_WAYLAND=1
}
pkg_postinst() {
@@ -445,6 +446,13 @@ pkg_postinst() {
ewarn "https://www.nvidia.com/object/IO_32667.html"
fi
if use !abi_x86_32 && [[ ${NV_HAD_ABI32} ]]; then
elog
elog "USE=abi_x86_32 is disabled, 32bit applications will not be able to"
elog "use nvidia-drivers for acceleration without it (e.g. commonly used"
elog "with app-emulation/wine-*). Re-enable if needed."
fi
if use wayland && use driver && [[ ! ${NV_HAD_WAYLAND} ]]; then
elog
elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
@@ -410,6 +410,9 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
}
pkg_preinst() {
has_version "${CATEGORY}/${PN}[abi_x86_32]" && NV_HAD_ABI32=1
has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=1
use driver || return
linux-mod_pkg_preinst
@@ -431,8 +434,6 @@ pkg_preinst() {
fi
done
rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
has_version "x11-drivers/nvidia-drivers[wayland]" && NV_HAD_WAYLAND=1
}
pkg_postinst() {
@@ -468,6 +469,13 @@ pkg_postinst() {
ewarn "https://www.nvidia.com/object/IO_32667.html"
fi
if use !abi_x86_32 && [[ ${NV_HAD_ABI32} ]]; then
elog
elog "USE=abi_x86_32 is disabled, 32bit applications will not be able to"
elog "use nvidia-drivers for acceleration without it (e.g. commonly used"
elog "with app-emulation/wine-*). Re-enable if needed."
fi
if use wayland && use driver && [[ ! ${NV_HAD_WAYLAND} ]]; then
elog
elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
@@ -399,6 +399,9 @@ https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers"
}
pkg_preinst() {
has_version "${CATEGORY}/${PN}[abi_x86_32]" && NV_HAD_ABI32=1
has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=1
use driver || return
linux-mod_pkg_preinst
@@ -420,8 +423,6 @@ pkg_preinst() {
fi
done
rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
has_version "x11-drivers/nvidia-drivers[wayland]" && NV_HAD_WAYLAND=1
}
pkg_postinst() {
@@ -457,6 +458,13 @@ pkg_postinst() {
ewarn "https://www.nvidia.com/object/IO_32667.html"
fi
if use !abi_x86_32 && [[ ${NV_HAD_ABI32} ]]; then
elog
elog "USE=abi_x86_32 is disabled, 32bit applications will not be able to"
elog "use nvidia-drivers for acceleration without it (e.g. commonly used"
elog "with app-emulation/wine-*). Re-enable if needed."
fi
if use wayland && use driver && [[ ! ${NV_HAD_WAYLAND} ]]; then
elog
elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"