From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 4EDF71581EE for ; Tue, 25 Mar 2025 01:24:16 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 358BD343175 for ; Tue, 25 Mar 2025 01:24:16 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 2C4A7110296; Tue, 25 Mar 2025 01:24:15 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 22252110296 for ; Tue, 25 Mar 2025 01:24:15 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id C66A6343169 for ; Tue, 25 Mar 2025 01:24:14 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id E243A122C for ; Tue, 25 Mar 2025 01:24:12 +0000 (UTC) From: "Ionen Wolkens" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Ionen Wolkens" Message-ID: <1742865837.78f3d3e1ad1d0061e9074878975e2b221bb54ce2.ionen@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/nv-codec-headers/ X-VCS-Repository: repo/gentoo X-VCS-Files: media-libs/nv-codec-headers/nv-codec-headers-12.1.14.0.ebuild media-libs/nv-codec-headers/nv-codec-headers-12.2.72.0.ebuild media-libs/nv-codec-headers/nv-codec-headers-13.0.19.0.ebuild X-VCS-Directories: media-libs/nv-codec-headers/ X-VCS-Committer: ionen X-VCS-Committer-Name: Ionen Wolkens X-VCS-Revision: 78f3d3e1ad1d0061e9074878975e2b221bb54ce2 X-VCS-Branch: master Date: Tue, 25 Mar 2025 01:24:12 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: d9724911-aa6d-4c2f-9932-a80c03cb5bff X-Archives-Hash: 21bb5424150a3216099b45c416bfa521 commit: 78f3d3e1ad1d0061e9074878975e2b221bb54ce2 Author: Ionen Wolkens gentoo org> AuthorDate: Mon Mar 24 23:59:53 2025 +0000 Commit: Ionen Wolkens gentoo org> CommitDate: Tue Mar 25 01:23:57 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=78f3d3e1 media-libs/nv-codec-headers: explain driver support handling Mostly repeats commit 917dce846463e4ae33067da3284c606517c3ffbd's message that added it. Situation is not ideal so it may be confusing to some. An alternative to the postinst message would be to mask/unkeyword the recent/latest nv-codec-headers and only expose the one that works for all (non-masked/legacy) drivers. ^ as a bit of a middle ground, this changes the ebuild's stabilization comment to only stabilize versions that work for all driver versions. So only ~arch users using bleeding headers but old drivers will need to juggle. The other (messier) alternative would be to put nv-codec-headers:= in RDEPEND for revdeps, depend on >=nvidia-${min} here, and do SLOT="0/${min}": Pros: - ensures nvdec/nvenc will work - no need to think about rebuilds when downgrading Cons (not *major* issues except maybe the last one): - confusing to have nv-codec-*headers* in RDEPEND for revdeps - installs headers for nothing on binhosts (not that these are huge) - rebuilds are not essential for using latest drivers, and ffmpeg is not that trivial to rebuild - prevents binhost from giving optional support without also pulling the (big) nvidia-drivers even on e.g. amdgpu machines -- fwiw most binary distros can (should) just enable this for everyone - portage may give confusing conflicts if users mask latest drivers, good to ensure nvenc/nvdec keeps working but that's often a low priority for users trying to debug (other) issues with drivers that often have nothing to do with nvenc/nvdec, rebuilds when just testing drivers back&forth would also be *very* annoying Note that in the past this did depend on >=nvidia-${min} (without subslot), and revdeps were using USE=video_cards_nvidia to enable support. This caused a lot of headaches for users of legacy drivers that lost support without having explicitly opted in. Eventually USE was renamed, and later someone (imo rightfully) thought the dependency in a header-only package was weird and dropped that too. Signed-off-by: Ionen Wolkens gentoo.org> media-libs/nv-codec-headers/nv-codec-headers-12.1.14.0.ebuild | 8 +++++++- media-libs/nv-codec-headers/nv-codec-headers-12.2.72.0.ebuild | 8 +++++++- media-libs/nv-codec-headers/nv-codec-headers-13.0.19.0.ebuild | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/media-libs/nv-codec-headers/nv-codec-headers-12.1.14.0.ebuild b/media-libs/nv-codec-headers/nv-codec-headers-12.1.14.0.ebuild index da0d6ad0fc18..52814050dd63 100644 --- a/media-libs/nv-codec-headers/nv-codec-headers-12.1.14.0.ebuild +++ b/media-libs/nv-codec-headers/nv-codec-headers-12.1.14.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -# do not stabilize without a matching stable nvidia-drivers version +# ideally only stabilize versions that work for all non-masked nvidia-drivers NV_MIN_VERSION=530.41.03 # see README DESCRIPTION="FFmpeg version of headers required to interface with Nvidias codec APIs" @@ -20,6 +20,12 @@ src_install() { } pkg_postinst() { + # prefer not to depend on nvidia-drivers given this package is depended + # on as header-only and drivers are optfeature'ish which can be better + # for e.g. binhosts to provide support (binding operators also not really + # suitable in DEPEND-only wrt rebuilds, rebuilds are not currently needed + # to work with *newer* drivers, and would be annoying for users switching + # driver versions only to troubleshoot non-nvenc issues) if ! has_version ">=x11-drivers/nvidia-drivers-${NV_MIN_VERSION}"; then ewarn ewarn "Be warned that packages built using this version of ${PN}" diff --git a/media-libs/nv-codec-headers/nv-codec-headers-12.2.72.0.ebuild b/media-libs/nv-codec-headers/nv-codec-headers-12.2.72.0.ebuild index 30216e09e758..cb05c373deb3 100644 --- a/media-libs/nv-codec-headers/nv-codec-headers-12.2.72.0.ebuild +++ b/media-libs/nv-codec-headers/nv-codec-headers-12.2.72.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -# do not stabilize without a matching stable nvidia-drivers version +# ideally only stabilize versions that work for all non-masked nvidia-drivers NV_MIN_VERSION=550.54.14 # see README DESCRIPTION="FFmpeg version of headers required to interface with Nvidias codec APIs" @@ -20,6 +20,12 @@ src_install() { } pkg_postinst() { + # prefer not to depend on nvidia-drivers given this package is depended + # on as header-only and drivers are optfeature'ish which can be better + # for e.g. binhosts to provide support (binding operators also not really + # suitable in DEPEND-only wrt rebuilds, rebuilds are not currently needed + # to work with *newer* drivers, and would be annoying for users switching + # driver versions only to troubleshoot non-nvenc issues) if ! has_version ">=x11-drivers/nvidia-drivers-${NV_MIN_VERSION}"; then ewarn ewarn "Be warned that packages built using this version of ${PN}" diff --git a/media-libs/nv-codec-headers/nv-codec-headers-13.0.19.0.ebuild b/media-libs/nv-codec-headers/nv-codec-headers-13.0.19.0.ebuild index 0921e27d532d..3bc2c0e05dd2 100644 --- a/media-libs/nv-codec-headers/nv-codec-headers-13.0.19.0.ebuild +++ b/media-libs/nv-codec-headers/nv-codec-headers-13.0.19.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -# do not stabilize without a matching stable nvidia-drivers version +# ideally only stabilize versions that work for all non-masked nvidia-drivers NV_MIN_VERSION=570 # see README DESCRIPTION="FFmpeg version of headers required to interface with Nvidias codec APIs" @@ -20,6 +20,12 @@ src_install() { } pkg_postinst() { + # prefer not to depend on nvidia-drivers given this package is depended + # on as header-only and drivers are optfeature'ish which can be better + # for e.g. binhosts to provide support (binding operators also not really + # suitable in DEPEND-only wrt rebuilds, rebuilds are not currently needed + # to work with *newer* drivers, and would be annoying for users switching + # driver versions only to troubleshoot non-nvenc issues) if ! has_version ">=x11-drivers/nvidia-drivers-${NV_MIN_VERSION}"; then ewarn ewarn "Be warned that packages built using this version of ${PN}"