From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6527286083495919616 X-Received: by 10.28.53.65 with SMTP id c62mr991443wma.15.1522158637282; Tue, 27 Mar 2018 06:50:37 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.28.71.29 with SMTP id u29ls334231wma.5.gmail; Tue, 27 Mar 2018 06:50:36 -0700 (PDT) X-Google-Smtp-Source: AIpwx49ndntZVDCF95qdRwSF7jfw4RcbykRv4NTCrtlNe0ES9gZ+tjzvVelALvBDSVfiGzyFWpjq X-Received: by 10.28.230.77 with SMTP id d74mr570389wmh.10.1522158636797; Tue, 27 Mar 2018 06:50:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522158636; cv=none; d=google.com; s=arc-20160816; b=PoCPbSfDxqGkcdN4Rn2Zvo7c1MjzEnB6QkFycMM8nbp5s4z/MoTF4ppOj/uHll0hKV ZvjeBzWrh+imCPUdVxjQIwPMVBpW6TND4np0LHLV+M85mwRfUTnQbCUpS1vbbJrh0/SK am5+P5c4WB78+jZXKE3qbZwUQhDklggYepFD9PlRn/1EcPu4njbydoFOfJevsB8o0upT 0tWT9cN4/nu5Gymza+Xy23iTZGda7qnmludhL039Nup+xhu7bGgqdZEog3tsDituAddW t7z9mc+cu2J1W6qtdBUtnLcs+YftUvdvYbSjETLsHfJaWvs0+Z9IqPRFnk9exRXjH1cU gtQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:references:to:subject :arc-authentication-results; bh=lmRfGJkPQUBpqFPAN7hz97TC6e98/8Pof5+xsOsg3VM=; b=SlPIn/TEeGn1NT/T1x73pcC7XqB5l8rT2lPuuGB1Y87/EwT3jhYHaBjt1adeguHQmI J/DiMzB3jni7N92mJOlQ/kgCdAURV9NUY17qiDvRMOeJORYqA5w6KCMC4Z8LqVLKOHax rl2stFSbjTdBu3JNT8V41fKDpjkz6RBU+g8F+0KhMms4g5y5vb0tGmx6XVMvo2L4jJdm 17p/JzWiI7HWceWFLMu/iOGAsrJ6PZ1C70dB+kwXTT8BhkYKyuSUiUwGcQGAGVm2Lxw9 jTNmT7BOOxg+xMCBo2mvHC9ylMeYgcQnoEHphdi6dX4u5fkIytlqMiewMCPjTmlfzrLy hNtw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Return-Path: Received: from aqmola.ilbers.de (aqmola.ilbers.de. [85.214.62.211]) by gmr-mx.google.com with ESMTPS id p128si60986wmd.1.2018.03.27.06.50.36 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Mar 2018 06:50:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) client-ip=85.214.62.211; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Received: from [10.0.2.15] ([188.227.110.165]) (authenticated bits=0) by aqmola.ilbers.de (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id w2RDoX65008621 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 27 Mar 2018 15:50:35 +0200 Subject: Re: [PATCH v3] meta: image: detect broken symlinks To: Henning Schild , isar-users References: <20180227172336.19786-1-henning.schild@siemens.com> <20180309152601.9357-1-henning.schild@siemens.com> <20180320144232.6d06e6c5@mmd1pvb1c.ad001.siemens.net> From: Alexander Smirnov Message-ID: <7738aad2-1008-15a1-8582-c09dc37f9dd7@ilbers.de> Date: Tue, 27 Mar 2018 16:50:27 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20180320144232.6d06e6c5@mmd1pvb1c.ad001.siemens.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: WlKYjnHf72Fa Hi, On 03/20/2018 04:42 PM, Henning Schild wrote: > ping Applied to next, thanks! Alex > > Am Fri, 9 Mar 2018 16:26:01 +0100 > schrieb Henning Schild : > >> Switch get_image_name from os.path.lexists to os.path.exists because >> the latter detects broken symlinks correctly. Also support older >> debian versions where the symlinks in the rootfs are absolute >> Also change scripts/start_vm to handle the case where no initrd is >> present. >> >> Issue: >> If you build a kernel without CONFIG_BLK_DEV_INITRD the postinst hook >> will still call "linux-update-symlinks" and create a broken symlink. >> After that os.path.lexists will return True and "sudo cp" in >> do_copy_boot_files will fail. >> >> Signed-off-by: Henning Schild >> --- >> meta/classes/image.bbclass | 5 ++++- >> scripts/start_vm | 11 +++++++---- >> 2 files changed, 11 insertions(+), 5 deletions(-) >> >> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass >> index 2c255f4..6a705fc 100644 >> --- a/meta/classes/image.bbclass >> +++ b/meta/classes/image.bbclass >> @@ -8,8 +8,11 @@ IMAGE_ROOTFS = "${WORKDIR}/rootfs" >> def get_image_name(d, name_link): >> S = d.getVar("IMAGE_ROOTFS", True) >> path_link = os.path.join(S, name_link) >> - if os.path.lexists(path_link): >> + if os.path.exists(path_link): >> return os.path.basename(os.path.realpath(path_link)) >> + if os.path.islink(path_link): >> + return get_image_name(d, >> os.path.relpath(os.path.realpath(path_link), >> + '/')) >> return "" >> >> # These variables are used by wic and start_vm >> diff --git a/scripts/start_vm b/scripts/start_vm >> index b7b5e17..0d1d554 100755 >> --- a/scripts/start_vm >> +++ b/scripts/start_vm >> @@ -25,8 +25,8 @@ qemu-system-$QEMU_ARCH \\\\\n\ >> -M $QEMU_MACHINE \\\\\n\ >> $QCPU\\\\\n\ >> -nographic \\\\\n\ >> - -kernel \$IMAGE_DIR/$KERNEL_IMAGE \\\\\n\ >> - -initrd \$IMAGE_DIR/$INITRD_IMAGE \\\\\n\ >> + -kernel \$QKERNEL \\\\\n\ >> + -initrd \$QINITRD \\\\\n\ >> -append \"console=$MACHINE_SERIAL root=/dev/$ROOTFS_DEV rw\" >> \\\\\n\ $EXTRA_ARGS \\\\\n\ >> $root1" >> @@ -38,8 +38,8 @@ qemu-system-$QEMU_ARCH \\\\\n\ >> -M $QEMU_MACHINE \ >> $QCPU \ >> -nographic \ >> - -kernel $IMAGE_DIR/$KERNEL_IMAGE \ >> - -initrd $IMAGE_DIR/$INITRD_IMAGE \ >> + -kernel $QKERNEL \ >> + -initrd $QINITRD \ >> -append "console=$MACHINE_SERIAL root=/dev/$ROOTFS_DEV rw" \ >> $EXTRA_ARGS \ >> $root2 >> @@ -118,6 +118,9 @@ readonly >> ROOTFS_IMAGE=isar-image-base-debian-$DISTRO-qemu$ARCH.ext4.img >> eval $(bitbake -e multiconfig:qemu$ARCH-$DISTRO:isar-image-base | >> grep "^KERNEL_IMAGE=") eval $(bitbake -e >> multiconfig:qemu$ARCH-$DISTRO:isar-image-base | grep >> "^INITRD_IMAGE=") +QKERNEL=$IMAGE_DIR/$KERNEL_IMAGE +QINITRD=/dev/null >> +[ -n "$INITRD_IMAGE" ] && QINITRD=$IMAGE_DIR/$INITRD_IMAGE >> >> readonly ISARROOT="$(dirname "$0")"/.. >> > -- With best regards, Alexander Smirnov ilbers GmbH Baierbrunner Str. 28c D-81379 Munich +49 (89) 122 67 24-0 http://ilbers.de/ Commercial register Munich, HRB 214197 General manager: Baurzhan Ismagulov