From d9277bf240de25868d8cb92283883e7e3b7853d8 Mon Sep 17 00:00:00 2001 From: MickLesk Date: Thu, 6 Aug 2026 08:08:24 +0200 Subject: [PATCH] build.func: filter templates by host architecture during search --- misc/build.func | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/misc/build.func b/misc/build.func index 0f2b30015..2633be925 100644 --- a/misc/build.func +++ b/misc/build.func @@ -922,8 +922,10 @@ choose_and_set_storage_for_file() { _list_os_versions() { local ostype="${1:-}" [[ -n "$ostype" ]] || return 0 + local arch + arch="$(dpkg --print-architecture 2>/dev/null || echo amd64)" pveam available -section system 2>/dev/null | - grep -E '\.(tar\.zst|tar\.xz|tar\.gz)$' | + grep -E "_${arch}\.(tar\.zst|tar\.xz|tar\.gz)$" | awk '{print $2}' | sed -nE "s/^${ostype}-([0-9]+(\.[0-9]+)?).*/\1/p" | sort -u -V || true @@ -936,8 +938,10 @@ _list_os_versions() { _list_templates() { local search="${1:-}" pattern="${2:-}" [[ -n "$search" ]] || return 0 + local arch + arch="$(dpkg --print-architecture 2>/dev/null || echo amd64)" pveam available -section system 2>/dev/null | - grep -E '\.(tar\.zst|tar\.xz|tar\.gz)$' | + grep -E "_${arch}\.(tar\.zst|tar\.xz|tar\.gz)$" | awk '{print $2}' | grep -E "^${search}.*${pattern}" | sort -t - -k 2 -V || true @@ -6721,7 +6725,8 @@ create_lxc_container() { # Step 1: Check local templates first (instant) mapfile -t LOCAL_TEMPLATES < <( pveam list "$TEMPLATE_STORAGE" 2>/dev/null | - awk -v search="${TEMPLATE_SEARCH}" -v pattern="${TEMPLATE_PATTERN}" '$1 ~ search && $1 ~ pattern {print $1}' | + awk -v search="${TEMPLATE_SEARCH}" -v pattern="${TEMPLATE_PATTERN}" -v arch="${ARCH}" \ + '$1 ~ search && $1 ~ pattern && $1 ~ ("_" arch "\\.(tar\\.zst|tar\\.xz|tar\\.gz)$") {print $1}' | sed 's|.*/||' | sort -t - -k 2 -V )