From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6657041487194226688 X-Received: by 2002:a1c:4183:: with SMTP id o125mr366382wma.24.1549990632767; Tue, 12 Feb 2019 08:57:12 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a7b:ce8d:: with SMTP id q13ls470081wmj.12.canary-gmail; Tue, 12 Feb 2019 08:57:12 -0800 (PST) X-Google-Smtp-Source: AHgI3IYKezMnWNTJkJ94pD5ZYU6l7tpuk0vqp3Q0u5gLnbp+mFhvB5j/MwWoFAsdSex1YZloHn0d X-Received: by 2002:a1c:cfc8:: with SMTP id f191mr329360wmg.17.1549990632402; Tue, 12 Feb 2019 08:57:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549990632; cv=none; d=google.com; s=arc-20160816; b=VaEs+l3P5G+sL+JNfdaZEapb+/KRmcOEvWfRSw8cI4Ml3OaFS/qdnuI4bHZoN3M1qu umHllIgRJCB71dEsyes07+9bMZPkDCfgH3SgXmTt2e3oX5G+gLA+2DSIoG0bcTXmXYs1 gaWKddCy2gADNi4sFNRHEVM1hadLj3qCt1H4YtU7G5KaQxvYMC9qq8i8mBG8wn/nG3AQ vb+N8POAxo9V4V4SQj/m2cWnvOOGVn7XdzZXwbmojq0D2ud8LCsuw69gW3yp/agn/lPc E+GQ/eLhnYRLB8R2qbvzYkSuySTzW57D3qVByCJ/PrzHjbZ8I8X+cSbK8xEss0fHFtlV mB6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from; bh=7IvYFsslESvc2UtBA1KGf6KX0tsKOI/n1MpGIyT15ZM=; b=MFZGGCO9a0qLYXducuqKzsvT/esahK8EoAi8009QJnyncfiduqlhLyVHRvXj5eJFEY 4ydx0t2mmGpmUqgH5Jvcw7Ko7cdPE5h/aapAeKAlzV6vILyNcBlsgVI/HXSRBQMWD6sQ i3/4R3dL58jUistqGPLSKbcZ+Xtbk91cByQlQlrYea2ENZsKQ3v0boyFvZf473fMvv0C 2arrow0Lxp+Jy/8yzUNCSeEz+JWEChJnipD21PPxDG6ItrxfjR1kfTaV4cNDB8OZkjKE HtYCACZPNiqjui/M0jKqxn5fJaoZdsqJqXQINzxmMMjVW6EmmoRH25HXrvFevcC8wUXJ veMg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=neutral (google.com: 212.18.0.10 is neither permitted nor denied by best guess record for domain of hws@denx.de) smtp.mailfrom=hws@denx.de Return-Path: Received: from mail-out.m-online.net (mail-out.m-online.net. [212.18.0.10]) by gmr-mx.google.com with ESMTPS id y6si157857wmd.1.2019.02.12.08.57.12 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Feb 2019 08:57:12 -0800 (PST) Received-SPF: neutral (google.com: 212.18.0.10 is neither permitted nor denied by best guess record for domain of hws@denx.de) client-ip=212.18.0.10; Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 212.18.0.10 is neither permitted nor denied by best guess record for domain of hws@denx.de) smtp.mailfrom=hws@denx.de Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 43zTN81n8Hz1qvNf for ; Tue, 12 Feb 2019 17:57:12 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 43zTN81g7Mz1r2H2 for ; Tue, 12 Feb 2019 17:57:12 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id eUjUKjsH3WbY for ; Tue, 12 Feb 2019 17:57:11 +0100 (CET) X-Auth-Info: m4O/1pEuZTkk8+IG46MqKr9vHTpLeNPDfa5YRdKO+/0= Received: from sandvich.fritz.box (p578a821c.dip0.t-ipconnect.de [87.138.130.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA for ; Tue, 12 Feb 2019 17:57:11 +0100 (CET) From: Harald Seiler To: isar-users@googlegroups.com Subject: [PATCH v2 3/5] image: Remove recursion in get_image_name Date: Tue, 12 Feb 2019 17:56:35 +0100 Message-Id: <20190212165637.19970-4-hws@denx.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190212165637.19970-1-hws@denx.de> References: <20190212165637.19970-1-hws@denx.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: LyzcZKnLcjlJ The use of recursion in this function is not immediately obvious. This commit refactors the recursion into a more visible imperative code style. Signed-off-by: Harald Seiler --- meta/classes/image.bbclass | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index a687662..3e3bf0c 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -22,13 +22,24 @@ ROOTFS_EXTRA ?= "64" def get_image_name(d, name_link): S = d.getVar("IMAGE_ROOTFS", True) path_link = os.path.join(S, name_link) + + # If path_link does not exist, it might be a symlink + # in the target rootfs. This block attempts to resolve + # it relative to the rootfs location. + if not os.path.exists(path_link): + path_link = os.path.join( + S, + os.path.relpath( + os.path.realpath(path_link), + "/", + ), + ) + if os.path.exists(path_link): base = os.path.basename(os.path.realpath(path_link)) full = d.getVar("IMAGE_FULLNAME", True) + "." + base return [base, full] - if os.path.islink(path_link): - return get_image_name(d, os.path.relpath(os.path.realpath(path_link), - '/')) + return ["", ""] def get_rootfs_size(d): -- 2.14.1