commit: 050b2247579bcb150f98727996dd3a00e417d8dd Author: Sv. Lockal <lockalsash <AT> gmail <DOT> com> AuthorDate: Sun Dec 7 14:20:57 2025 +0000 Commit: Sv. Lockal <lockalsash <AT> gmail <DOT> com> CommitDate: Sun Dec 7 14:21:06 2025 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=050b2247
dev-libs/xdna-driver: refactor and fix installation with pmerge Other package managers like pmerge want global associative arrays to be declared with `declare -Ag`. However, for this ebuild it is even easier not to use associative arrays. See also: https://public-inbox.gentoo.org/gentoo-dev/642e2d85-7d75-4b0f-8a16-037a4f692e5c <AT> gmail.com/ Signed-off-by: Sv. Lockal <lockalsash <AT> gmail.com> .../xdna-driver/xdna-driver-202610.2.21.21.ebuild | 58 ++++++++++++---------- dev-libs/xdna-driver/xdna-driver-999999.ebuild | 44 ++++++++-------- 2 files changed, 54 insertions(+), 48 deletions(-) diff --git a/dev-libs/xdna-driver/xdna-driver-202610.2.21.21.ebuild b/dev-libs/xdna-driver/xdna-driver-202610.2.21.21.ebuild index 7225247fa5..ccb56856b0 100644 --- a/dev-libs/xdna-driver/xdna-driver-202610.2.21.21.ebuild +++ b/dev-libs/xdna-driver/xdna-driver-202610.2.21.21.ebuild @@ -7,36 +7,41 @@ inherit linux-mod-r1 # FWAPI=https://gitlab.com/api/v4/projects/kernel-firmware%2Fdrm-firmware/repository/branches/amd-ipu-staging # curl -s "$FWAPI" | jq -r '.commit.id' -FW_HASH=886e8948d60c354b488ad8d10c56763b81597093 +FW_COMMIT=886e8948d60c354b488ad8d10c56763b81597093 DESCRIPTION="AMD XDNA Driver" HOMEPAGE="https://github.com/amd/xdna-driver" -SRC_URI="https://github.com/amd/xdna-driver/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" - -# INFO_FILE=https://raw.githubusercontent.com/amd/xdna-driver/0c2a537b91b65d5f76a45fcd03239312889f4531/tools/info.json -# curl -s "$INFO_FILE" | jq -r '.firmwares[] | "\(.url) -> \(.pci_device_id)_\(.pci_revision_id)__\(.fw_name)"' -FW_URI_PREFIX=https://gitlab.com/kernel-firmware/drm-firmware/-/raw/${FW_HASH}/amdnpu -SRC_URI+=" firmware? ( - ${FW_URI_PREFIX}/1502_00/npu.sbin.1.5.5.391 -> ${FW_HASH:0:6}-1502_00__npu.dev.sbin - ${FW_URI_PREFIX}/17f0_00/npu.sbin.0.7.22.185 -> ${FW_HASH:0:6}-17f0_00__npu.dev.sbin - ${FW_URI_PREFIX}/17f0_10/npu.sbin.255.0.5.35 -> ${FW_HASH:0:6}-17f0_10__npu.dev.sbin - ${FW_URI_PREFIX}/17f0_11/npu.sbin.255.0.5.35 -> ${FW_HASH:0:6}-17f0_11__npu.dev.sbin -)" - -declare -A firmwares - -# curl -s https://raw.githubusercontent.com/amd/xdna-driver/0c2a537b91b65d5f76a45fcd03239312889f4531/tools/info.json \ -# | jq -r '.firmwares[] | "firmwares[\"\(.pci_device_id)_\(.pci_revision_id)__\(.fw_name)\"]=\(.pci_device_id)_\(.pci_revision_id)/\(.fw_name)"' -firmwares["1502_00__npu.dev.sbin"]=1502_00/npu.dev.sbin -firmwares["17f0_00__npu.dev.sbin"]=17f0_00/npu.dev.sbin -firmwares["17f0_10__npu.dev.sbin"]=17f0_10/npu.dev.sbin -firmwares["17f0_11__npu.dev.sbin"]=17f0_11/npu.dev.sbin +if [[ ${PV} == 999999 ]] ; then + EGIT_REPO_URI="https://github.com/amd/xdna-driver.git" + EGIT_SUBMODULES=() + inherit git-r3 +else + SRC_URI="https://github.com/amd/xdna-driver/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64" +fi + +# INFO_FILE=https://raw.githubusercontent.com/amd/xdna-driver/202610.2.21.21/tools/info.json +# COMMON_PREFIX=https://gitlab.com/kernel-firmware/drm-firmware/-/raw/amd-ipu-staging/amdnpu/ +# curl -s "$INFO_FILE" | jq -r ".firmwares[] | .url | sub(\"${COMMON_PREFIX}\"; \"\")" +FIRMWARES=( + 1502_00/npu.sbin.1.5.5.391 + 17f0_00/npu.sbin.0.7.22.185 + 17f0_10/npu.sbin.255.0.5.35 + 17f0_11/npu.sbin.255.0.5.35 +) + +FW_URI_PREFIX=https://gitlab.com/kernel-firmware/drm-firmware/-/raw/${FW_COMMIT}/amdnpu + +SRC_URI+=" firmware? ( " +for fw in "${FIRMWARES[@]}"; do + SRC_URI+="${FW_URI_PREFIX}/${fw} -> ${FW_COMMIT:0:6}-${fw%%/*}__npu.dev.sbin " +done +SRC_URI+=")" S="${WORKDIR}/${P}/src/driver/amdxdna" LICENSE="GPL-2 firmware? ( linux-fw-redistributable )" SLOT="0" -KEYWORDS="amd64" IUSE="+firmware" src_prepare() { @@ -52,10 +57,11 @@ src_compile() { } src_install() { - for k in "${!firmwares[@]}"; do - value="${firmwares[$k]}" - mkdir -p "${D}/lib/firmware/amdnpu/$(dirname "${value}")" || die - cp "${DISTDIR}/${FW_HASH:0:6}-$k" "${D}/lib/firmware/amdnpu/${value}" || die + for fw in "${FIRMWARES[@]}"; do + local dir="${fw%%/*}" + local src_filename="${FW_COMMIT:0:6}-${dir}__npu.dev.sbin" + insinto "/lib/firmware/amdnpu/${dir}" + newins "${DISTDIR}/${src_filename}" npu.dev.sbin done insinto /usr/lib/modules-load.d diff --git a/dev-libs/xdna-driver/xdna-driver-999999.ebuild b/dev-libs/xdna-driver/xdna-driver-999999.ebuild index 3c906c8d16..2e3d3e3b7f 100644 --- a/dev-libs/xdna-driver/xdna-driver-999999.ebuild +++ b/dev-libs/xdna-driver/xdna-driver-999999.ebuild @@ -7,7 +7,7 @@ inherit linux-mod-r1 # FWAPI=https://gitlab.com/api/v4/projects/kernel-firmware%2Fdrm-firmware/repository/branches/amd-ipu-staging # curl -s "$FWAPI" | jq -r '.commit.id' -FW_HASH=886e8948d60c354b488ad8d10c56763b81597093 +FW_COMMIT=886e8948d60c354b488ad8d10c56763b81597093 DESCRIPTION="AMD XDNA Driver" HOMEPAGE="https://github.com/amd/xdna-driver" @@ -22,23 +22,22 @@ else fi # INFO_FILE=https://raw.githubusercontent.com/amd/xdna-driver/main/tools/info.json -# curl -s "$INFO_FILE" | jq -r '.firmwares[] | "\(.url) -> \(.pci_device_id)_\(.pci_revision_id)__\(.fw_name)"' -FW_URI_PREFIX=https://gitlab.com/kernel-firmware/drm-firmware/-/raw/${FW_HASH}/amdnpu -SRC_URI+=" firmware? ( - ${FW_URI_PREFIX}/1502_00/npu.sbin.1.5.5.391 -> ${FW_HASH:0:6}-1502_00__npu.dev.sbin - ${FW_URI_PREFIX}/17f0_00/npu.sbin.0.7.22.185 -> ${FW_HASH:0:6}-17f0_00__npu.dev.sbin - ${FW_URI_PREFIX}/17f0_10/npu.sbin.255.0.5.35 -> ${FW_HASH:0:6}-17f0_10__npu.dev.sbin - ${FW_URI_PREFIX}/17f0_11/npu.sbin.255.0.5.35 -> ${FW_HASH:0:6}-17f0_11__npu.dev.sbin -)" - -declare -A firmwares - -# curl -s https://raw.githubusercontent.com/amd/xdna-driver/main/tools/info.json \ -# | jq -r '.firmwares[] | "firmwares[\"\(.pci_device_id)_\(.pci_revision_id)__\(.fw_name)\"]=\(.pci_device_id)_\(.pci_revision_id)/\(.fw_name)"' -firmwares["1502_00__npu.dev.sbin"]=1502_00/npu.dev.sbin -firmwares["17f0_00__npu.dev.sbin"]=17f0_00/npu.dev.sbin -firmwares["17f0_10__npu.dev.sbin"]=17f0_10/npu.dev.sbin -firmwares["17f0_11__npu.dev.sbin"]=17f0_11/npu.dev.sbin +# COMMON_PREFIX=https://gitlab.com/kernel-firmware/drm-firmware/-/raw/amd-ipu-staging/amdnpu/ +# curl -s "$INFO_FILE" | jq -r ".firmwares[] | .url | sub(\"${COMMON_PREFIX}\"; \"\")" +FIRMWARES=( + 1502_00/npu.sbin.1.5.5.391 + 17f0_00/npu.sbin.0.7.22.185 + 17f0_10/npu.sbin.255.0.5.35 + 17f0_11/npu.sbin.255.0.5.35 +) + +FW_URI_PREFIX=https://gitlab.com/kernel-firmware/drm-firmware/-/raw/${FW_COMMIT}/amdnpu + +SRC_URI+=" firmware? ( " +for fw in "${FIRMWARES[@]}"; do + SRC_URI+="${FW_URI_PREFIX}/${fw} -> ${FW_COMMIT:0:6}-${fw%%/*}__npu.dev.sbin " +done +SRC_URI+=")" S="${WORKDIR}/${P}/src/driver/amdxdna" LICENSE="GPL-2 firmware? ( linux-fw-redistributable )" @@ -58,10 +57,11 @@ src_compile() { } src_install() { - for k in "${!firmwares[@]}"; do - value="${firmwares[$k]}" - mkdir -p "${D}/lib/firmware/amdnpu/$(dirname "${value}")" || die - cp "${DISTDIR}/${FW_HASH:0:6}-$k" "${D}/lib/firmware/amdnpu/${value}" || die + for fw in "${FIRMWARES[@]}"; do + local dir="${fw%%/*}" + local src_filename="${FW_COMMIT:0:6}-${dir}__npu.dev.sbin" + insinto "/lib/firmware/amdnpu/${dir}" + newins "${DISTDIR}/${src_filename}" npu.dev.sbin done insinto /usr/lib/modules-load.d
