From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6527286083495919616 X-Received: by 10.28.225.68 with SMTP id y65mr272905wmg.30.1521553340533; Tue, 20 Mar 2018 06:42:20 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.223.199.7 with SMTP id k7ls406315wrg.0.gmail; Tue, 20 Mar 2018 06:42:20 -0700 (PDT) X-Google-Smtp-Source: AG47ELt5YNqbkuoKlT1xEO/FvuuaMVuifHk9VM/R0WXD1wRGwVGS3ChyfdIBhJfOqb0GSjCWbdui X-Received: by 10.223.158.210 with SMTP id b18mr1071107wrf.29.1521553340045; Tue, 20 Mar 2018 06:42:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521553340; cv=none; d=google.com; s=arc-20160816; b=En1qfvNN6XjcQ9FZmkaFveoYQn2WpE2FeOJm45PiLQ+gmlfZhSW1v5w8WAnicR3FMk l0N7CtCbyj8Yhy/wJGjOi0eNG7D5fXMgvBJBoDndH9ZTQRiCm0Jv7gGkyz03sdfICZBF JqrfW/91RC4np8lcnqjo+ywNbWPzO6EqorMAWdLHQQsR/d0O/Asid0xdK0Yr2f+8Qqzm 39I3hPHXKZJbGwCLOzvIDDK3vfREqFy4masu1sBwPyqhuxU+aTh8zCugE16GeIopuCBg Xj/9Z8lr/McMh/p4Y5pp/AcWRxZ4VA2H580RdMSPGFhZYRv6hHteLq6wTplEa2+RHBFZ mr7w== 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:subject:to:from:date:arc-authentication-results; bh=mQjpkH/EcautV/ZFvUv5LlDFSc19/MAGXWSEIknriSs=; b=bl6tDJJL/kSL+VnLIBoF/gUMU28U4QYub4dbmNAr/dqGo6EX7zxtXEHLt8uYe7gNF6 xYjYJRC/7xrT8i7YkXpIYhmETDZ4EOvq5zd6Vm+1iE+gavNucu8/jWYgPpRgZvq2ZWCb 2sy50JxPgV0kO7GD1/HWac9AI9PpS7kyQSztaVUBO1sFuVDyPT6UeGI4Tvbylv1Km+gr 54JwhdIet7/wSQ1ttsHMYXBdIdwAZ+uWnPlcvkbzdKhy5K7g/NM+x5slOE6EHXvw1O11 VQya9ObXqd1XEEZMiyhMu79COxemmz2i2lrQ387oDSlgxNQCrJyMWtRlrn/7v5cxCMs6 hQlg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id w17si54895wrb.2.2018.03.20.06.42.19 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Mar 2018 06:42:20 -0700 (PDT) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.14 as permitted sender) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Received: from mail2.siemens.de (mail2.siemens.de [139.25.208.11]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id w2KDgJHu017177 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 20 Mar 2018 14:42:19 +0100 Received: from mmd1pvb1c.ad001.siemens.net (md1pvb1c.ad001.siemens.net [139.25.68.40] (may be forged)) by mail2.siemens.de (8.15.2/8.15.2) with ESMTP id w2KDgJA2005025; Tue, 20 Mar 2018 14:42:19 +0100 Date: Tue, 20 Mar 2018 14:42:32 +0100 From: Henning Schild To: isar-users , Alexander Smirnov Subject: Re: [PATCH v3] meta: image: detect broken symlinks Message-ID: <20180320144232.6d06e6c5@mmd1pvb1c.ad001.siemens.net> In-Reply-To: <20180309152601.9357-1-henning.schild@siemens.com> References: <20180227172336.19786-1-henning.schild@siemens.com> <20180309152601.9357-1-henning.schild@siemens.com> X-Mailer: Claws Mail 3.15.0-dirty (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TUID: s9Rd8rXjVFLn ping 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")"/.. >