commit: 1d31c1c2f2808bce35615c3b445c70deaa039032 Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org> AuthorDate: Wed Feb 7 01:32:00 2024 +0000 Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org> CommitDate: Wed Feb 7 02:21:41 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1d31c1c2
x11-drivers/nvidia-drivers: move nvidia-powerd behind IUSE=powerd Mostly due to the openrc service's "need dbus" which is an annoyance when dbus is missing (preventing from being a runtime-only optfeature), but even with systemd this now also allows to properly check for multilib on dbus (used by 32bit glcore/eglcore libraries to communicate with powerd). *Technically* needs a revbump given --changed-use does not know it needs to rebuild here, but given this only cause problems for rare users without dbus (e.g. headless cuda servers with USE=-tools) and will propagate with kernel updates+rebuilds let's not bother every users over this. Hopefully users of powerd (incl. for systemd which may have more existing ones) will notice the new USE and enable it. Also re-arrange arm64 handling, it makes more sense to mask the USE on arm64 than keep it as a no-op by checking if use !amd64. Exception to this is 0/550 branch which started to include a arm64 nvidia-powerd build (albeit do not think hardware that need this even exists yet). Hope did not break installation there given did not test on arm64, please report if so. Bug: https://bugs.gentoo.org/923117 Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org> profiles/arch/arm64/package.use.mask | 4 ++++ x11-drivers/nvidia-drivers/metadata.xml | 1 + .../nvidia-drivers/nvidia-drivers-525.147.05.ebuild | 9 ++++++--- .../nvidia-drivers/nvidia-drivers-535.146.02.ebuild | 9 ++++++--- .../nvidia-drivers/nvidia-drivers-535.154.05.ebuild | 9 ++++++--- .../nvidia-drivers/nvidia-drivers-535.43.25.ebuild | 9 ++++++--- .../nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild | 9 ++++++--- .../nvidia-drivers/nvidia-drivers-550.40.07.ebuild | 17 +++++++++++------ 8 files changed, 46 insertions(+), 21 deletions(-) diff --git a/profiles/arch/arm64/package.use.mask b/profiles/arch/arm64/package.use.mask index 30d7bfd4eb6c..0cb8582d6f5b 100644 --- a/profiles/arch/arm64/package.use.mask +++ b/profiles/arch/arm64/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Ionen Wolkens <io...@gentoo.org> (2024-02-07) +# nvidia-powerd is only available for arm64 in 550+ +<x11-drivers/nvidia-drivers-550 powerd + # Alexander Tsoy <alexan...@tsoy.me> (2024-01-31) # Supports 64-bit NEON media-libs/zita-resampler -cpu_flags_arm_neon diff --git a/x11-drivers/nvidia-drivers/metadata.xml b/x11-drivers/nvidia-drivers/metadata.xml index a8ee1dd7baee..8a3bfb5d3a1b 100644 --- a/x11-drivers/nvidia-drivers/metadata.xml +++ b/x11-drivers/nvidia-drivers/metadata.xml @@ -12,6 +12,7 @@ <use> <flag name="kernel-open">Use the open source variant of drivers (Turing/Ampere+ GPUs only, aka GTX 1650+, experimental)</flag> <flag name="persistenced">Install the persistence daemon for keeping devices state when unused (e.g. for headless)</flag> + <flag name="powerd">Install the NVIDIA dynamic boost support daemon (only useful with specific laptops, ignore if unsure)</flag> <flag name="static-libs">Install the XNVCtrl static library for accessing sensors and other features</flag> <flag name="tools">Install additional tools such as nvidia-settings</flag> </use> diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05.ebuild index 3b43c86bcab8..8b874970372b 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-525.147.05.ebuild @@ -25,7 +25,7 @@ S=${WORKDIR} LICENSE="NVIDIA-r2 BSD BSD-2 GPL-2 MIT ZLIB curl openssl" SLOT="0/${PV%%.*}" KEYWORDS="-* amd64 ~arm64" -IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced +static-libs +tools wayland" +IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" REQUIRED_USE="kernel-open? ( modules )" COMMON_DEPEND=" @@ -57,6 +57,7 @@ RDEPEND=" x11-libs/libX11[abi_x86_32(-)?] x11-libs/libXext[abi_x86_32(-)?] ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( gui-libs/egl-gbm >=gui-libs/egl-wayland-1.1.10 @@ -153,7 +154,8 @@ src_prepare() { sed 's/__USER__/nvpd/' \ nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ > "${T}"/nvidia-persistenced.service || die - use !amd64 || sed -i "s|/usr|${EPREFIX}/opt|" systemd/system/nvidia-powerd.service || die + use !powerd || # file is missing on arm64 (masked) + 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 @@ -267,6 +269,7 @@ src_install() { local skip_modules=( $(usev !X "nvfbc vdpau xdriver") $(usev !modules gsp) + $(usev !powerd powerd) installer nvpd # handled separately / built from source ) local skip_types=( @@ -410,7 +413,7 @@ documentation that is installed alongside this README." dobin nvidia-bug-report.sh # MODULE:powerd extras - if use amd64; then + if use powerd; then newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 systemd_dounit systemd/system/nvidia-powerd.service diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild index 38ad82d3c314..bde3618ee96a 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.146.02.ebuild @@ -25,7 +25,7 @@ S=${WORKDIR} LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl" SLOT="0/${PV%%.*}" KEYWORDS="-* amd64 ~arm64" -IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced +static-libs +tools wayland" +IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" REQUIRED_USE="kernel-open? ( modules )" COMMON_DEPEND=" @@ -58,6 +58,7 @@ RDEPEND=" x11-libs/libX11[abi_x86_32(-)?] x11-libs/libXext[abi_x86_32(-)?] ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( gui-libs/egl-gbm >=gui-libs/egl-wayland-1.1.10 @@ -156,7 +157,8 @@ src_prepare() { sed 's/__USER__/nvpd/' \ nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ > "${T}"/nvidia-persistenced.service || die - use !amd64 || sed -i "s|/usr|${EPREFIX}/opt|" systemd/system/nvidia-powerd.service || die + use !powerd || # file is missing on arm64 (masked) + 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 @@ -272,6 +274,7 @@ src_install() { local skip_modules=( $(usev !X "nvfbc vdpau xdriver") $(usev !modules gsp) + $(usev !powerd powerd) installer nvpd # handled separately / built from source ) local skip_types=( @@ -417,7 +420,7 @@ documentation that is installed alongside this README." dobin nvidia-bug-report.sh # MODULE:powerd extras - if use amd64; then + if use powerd; then newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 systemd_dounit systemd/system/nvidia-powerd.service diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.154.05.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.154.05.ebuild index 38ad82d3c314..bde3618ee96a 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.154.05.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.154.05.ebuild @@ -25,7 +25,7 @@ S=${WORKDIR} LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl" SLOT="0/${PV%%.*}" KEYWORDS="-* amd64 ~arm64" -IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced +static-libs +tools wayland" +IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" REQUIRED_USE="kernel-open? ( modules )" COMMON_DEPEND=" @@ -58,6 +58,7 @@ RDEPEND=" x11-libs/libX11[abi_x86_32(-)?] x11-libs/libXext[abi_x86_32(-)?] ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( gui-libs/egl-gbm >=gui-libs/egl-wayland-1.1.10 @@ -156,7 +157,8 @@ src_prepare() { sed 's/__USER__/nvpd/' \ nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ > "${T}"/nvidia-persistenced.service || die - use !amd64 || sed -i "s|/usr|${EPREFIX}/opt|" systemd/system/nvidia-powerd.service || die + use !powerd || # file is missing on arm64 (masked) + 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 @@ -272,6 +274,7 @@ src_install() { local skip_modules=( $(usev !X "nvfbc vdpau xdriver") $(usev !modules gsp) + $(usev !powerd powerd) installer nvpd # handled separately / built from source ) local skip_types=( @@ -417,7 +420,7 @@ documentation that is installed alongside this README." dobin nvidia-bug-report.sh # MODULE:powerd extras - if use amd64; then + if use powerd; then newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 systemd_dounit systemd/system/nvidia-powerd.service diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.25.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.25.ebuild index e2d7f3fdf148..4615a52cdb63 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.25.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-535.43.25.ebuild @@ -26,7 +26,7 @@ S=${WORKDIR} LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl" SLOT="0/vulkan" KEYWORDS="-* ~amd64" -IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced +static-libs +tools wayland" +IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" REQUIRED_USE="kernel-open? ( modules )" COMMON_DEPEND=" @@ -61,6 +61,7 @@ RDEPEND=" x11-libs/libX11[abi_x86_32(-)?] x11-libs/libXext[abi_x86_32(-)?] ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( gui-libs/egl-gbm >=gui-libs/egl-wayland-1.1.10 @@ -154,7 +155,8 @@ src_prepare() { sed 's/__USER__/nvpd/' \ nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ > "${T}"/nvidia-persistenced.service || die - use !amd64 || sed -i "s|/usr|${EPREFIX}/opt|" systemd/system/nvidia-powerd.service || die + use !powerd || # file is missing on arm64 (masked) + 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 @@ -270,6 +272,7 @@ src_install() { local skip_modules=( $(usev !X "nvfbc vdpau xdriver") $(usev !modules gsp) + $(usev !powerd powerd) installer nvpd # handled separately / built from source ) local skip_types=( @@ -415,7 +418,7 @@ documentation that is installed alongside this README." dobin nvidia-bug-report.sh # MODULE:powerd extras - if use amd64; then + if use powerd; then newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 systemd_dounit systemd/system/nvidia-powerd.service diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild index 59fb67e327b0..441694459f04 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-545.29.06-r1.ebuild @@ -25,7 +25,7 @@ S=${WORKDIR} LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl" SLOT="0/${PV%%.*}" KEYWORDS="-* ~amd64 ~arm64" -IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced +static-libs +tools wayland" +IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" REQUIRED_USE="kernel-open? ( modules )" COMMON_DEPEND=" @@ -58,6 +58,7 @@ RDEPEND=" x11-libs/libX11[abi_x86_32(-)?] x11-libs/libXext[abi_x86_32(-)?] ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( gui-libs/egl-gbm >=gui-libs/egl-wayland-1.1.10 @@ -147,7 +148,8 @@ src_prepare() { sed 's/__USER__/nvpd/' \ nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ > "${T}"/nvidia-persistenced.service || die - use !amd64 || sed -i "s|/usr|${EPREFIX}/opt|" systemd/system/nvidia-powerd.service || die + use !powerd || # file is missing on arm64 (masked) + sed -i "s|/usr|${EPREFIX}/opt|" systemd/system/nvidia-powerd.service || die4 # use alternative vulkan icd option if USE=-X (bug #909181) use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die @@ -254,6 +256,7 @@ src_install() { local skip_modules=( $(usev !X "nvfbc vdpau xdriver") $(usev !modules gsp) + $(usev !powerd powerd) installer nvpd # handled separately / built from source ) local skip_types=( @@ -399,7 +402,7 @@ documentation that is installed alongside this README." dobin nvidia-bug-report.sh # MODULE:powerd extras - if use amd64; then + if use powerd; then newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 systemd_dounit systemd/system/nvidia-powerd.service diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.07.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.07.ebuild index e52744d51ff0..b3877e204635 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.07.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-550.40.07.ebuild @@ -26,7 +26,7 @@ LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl" SLOT="0/${PV%%.*}" # not keywording betas #KEYWORDS="-* ~amd64 ~arm64" -IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced +static-libs +tools wayland" +IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" REQUIRED_USE="kernel-open? ( modules )" COMMON_DEPEND=" @@ -59,6 +59,7 @@ RDEPEND=" x11-libs/libX11[abi_x86_32(-)?] x11-libs/libXext[abi_x86_32(-)?] ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( gui-libs/egl-gbm >=gui-libs/egl-wayland-1.1.10 @@ -140,7 +141,7 @@ src_prepare() { sed 's/__USER__/nvpd/' \ nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ > "${T}"/nvidia-persistenced.service || die - use !amd64 || sed -i "s|/usr|${EPREFIX}/opt|" systemd/system/nvidia-powerd.service || die + 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 @@ -247,6 +248,7 @@ src_install() { local skip_modules=( $(usev !X "nvfbc vdpau xdriver") $(usev !modules gsp) + $(usev !powerd powerd) installer nvpd # handled separately / built from source ) local skip_types=( @@ -392,10 +394,13 @@ documentation that is installed alongside this README." dobin nvidia-bug-report.sh # MODULE:powerd extras - insinto /usr/share/dbus-1/system.d - doins nvidia-dbus.conf - newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 - systemd_dounit systemd/system/nvidia-powerd.service + if use powerd; then + newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 + systemd_dounit systemd/system/nvidia-powerd.service + + insinto /usr/share/dbus-1/system.d + doins nvidia-dbus.conf + fi # symlink non-versioned so nvidia-settings can use it even if misdetected dosym nvidia-application-profiles-${PV}-key-documentation \