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

Reply via email to