From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6931066459248394240 X-Received: by 2002:adf:f750:: with SMTP id z16mr8383847wrp.108.1613764672085; Fri, 19 Feb 2021 11:57:52 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a1c:2ecd:: with SMTP id u196ls4453685wmu.1.gmail; Fri, 19 Feb 2021 11:57:51 -0800 (PST) X-Google-Smtp-Source: ABdhPJyVRo1OE8NZ8M79sY/JHSF2/0HugcUHD7gGm9cmf7vMeYAHL1h6kse99qdk55mpXqbXsqkW X-Received: by 2002:a1c:9a06:: with SMTP id c6mr9487370wme.140.1613764671140; Fri, 19 Feb 2021 11:57:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613764671; cv=none; d=google.com; s=arc-20160816; b=KP9Bweoi8OINYUrTFaPiV2v2r/i1mLbjJ3gX2MiJ1RZPVaIE5Bk9zKp79qLPVihxnr VVhBpGvZw532n/KvmAdEsdC7qMDgLbcJlBkC7q3QIh3GV/DIiLv8CMPLWQDdsbyzZQHi 8xpN4RUVK55pY7yTBmF05MxbaIr548nB1CkqwqQ7l34Yse2y9dNM/DTIrJS1DAHvf/W6 pkEUzACpvKM5/qpywZkPIVEe+9G7SRPMes/62d0XxhF4F+jhg+HUJduoLvtws0WzPaTI G4DfGxjDhSFoTdNlxb3DIpBxV5eQIdGYNuk3+JWWN9hncJpfTWnrZHYLI7VLbS96tIwe 8Y7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:ironport-sdr:ironport-sdr; bh=TwXjE2r4KgypucL/FcR2W2L19n+Lldz2wbKmzvxx0O4=; b=dR/lntgvl9VE2HsdyjLt7XP8htCD/DzMLE/XVB8VobXCyCwBJ38Luu3u3mOEVzB6Qq mj++vPpQlHIAjHZ7788JNEENR45oGOd7rCgB5lXOGzAyQXHVUiaXWHFWftAanPCQMuci ZqdVEex8cuS0UxpHKxqg8UOtabamdYdlZGHeB6T7yQk1iE/XYJsGwmT7J2/2yi+UkIe1 fXovjlz0Ib1uk9CaFr1gUtKOn7Z7DweceIth3Y+v4FR6zQbA2eZbmtg6v9eUmGs9Ythk qRaYoRJrDncVXW5FE029Yuv4hdWlmkGxoWi20CRdYvYeyyvQL51+7g8xJFA/zkVhR9i9 ExYg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of vijaikumar_kanagarajan@mentor.com designates 68.232.137.180 as permitted sender) smtp.mailfrom=Vijaikumar_Kanagarajan@mentor.com Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com. [68.232.137.180]) by gmr-mx.google.com with ESMTPS id f6si199833wmq.2.2021.02.19.11.57.50 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Feb 2021 11:57:51 -0800 (PST) Received-SPF: pass (google.com: domain of vijaikumar_kanagarajan@mentor.com designates 68.232.137.180 as permitted sender) client-ip=68.232.137.180; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of vijaikumar_kanagarajan@mentor.com designates 68.232.137.180 as permitted sender) smtp.mailfrom=Vijaikumar_Kanagarajan@mentor.com IronPort-SDR: 8Y55wpmni0X+jrhErpMoFJwbEH9ubJuVeUXFkKOEto88IirbfUjlJy9ByoLJAyCeYqi7CNkRVX gGTy2tiGI9SPl6LTQ8YaKDOWJ0L8It0Sc54d1Y/uWcthEKjX91FRt8fqc8r6nrztZ0dNoYzm+o ktF+/r5XDGIEyotc46IW9PtrtmIR0dB6x7+mqVVRoWP9q40u6jzB9JXbNvKu8VlMo2VfgocWhv m3AkxXpxs5FhuZDjWPnQX4/V9Mt2uX2ucTnkreYG3REa2VoxB0OQBgQ5a6F9LMYph1WvjQUHwR ODo= X-IronPort-AV: E=Sophos;i="5.81,189,1610438400"; d="scan'208";a="58305040" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa3.mentor.iphmx.com with ESMTP; 19 Feb 2021 11:57:50 -0800 IronPort-SDR: KZgBKawCTPvtJCmkLj4tXU9/RIGYM+0i35kVrxYfI7KidO39oTVy8x5Vp1sKb9L4KS3P4NsVB9 KUo00rewshKlZWA1PeZ0oDdLuL/IzqwgOgLm/EoFITBtUWNcgyeFDNCgTVVzX1xCygpR8T2nrG TGwlvepj5U+Ug+5UTeCnSVB53sK/6HsGAnl7eRZBm/L4YYvZeiOoSBe6WBlLJdoMTDO2aSCAi2 jovl+vaiX8NHD0WozkEsoMj1tp0AFQbZJcMYEPcbAInUVMvubspY0z1IjTVfWLiLQKJ064frI9 CU0= From: Vijai Kumar K To: , , CC: Vijai Kumar K Subject: [RFC PATCH 2/2] recipes-core: Add recipe for base-files Date: Sat, 20 Feb 2021 01:27:19 +0530 Message-ID: <20210219195719.29037-3-Vijaikumar_Kanagarajan@mentor.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210219195719.29037-1-Vijaikumar_Kanagarajan@mentor.com> References: <20210219195719.29037-1-Vijaikumar_Kanagarajan@mentor.com> MIME-Version: 1.0 Content-Type: text/plain Return-Path: Vijaikumar_Kanagarajan@mentor.com X-ClientProxiedBy: SVR-ORW-MBX-09.mgc.mentorg.com (147.34.90.209) To svr-orw-mbx-01.mgc.mentorg.com (147.34.90.201) X-TUID: UC/K2fiDEbT1 /etc/os-release is a symlink to /usr/lib/os-release and belongs to the base-files package. ISAR has been modifying the /etc/os-release during postprocessing to inject custom data onto it. Since this file belongs to base-files, an update/reinstall of the package would overwrite the file with the one provided by base-files. Instead of modifying the contents of /etc/os-release during post-processing, provide a modified base-files recipe in ISAR which provides the similar changes in os-release. Signed-off-by: Vijai Kumar K --- .../recipes-core/images/isar-image-base.bb | 2 + meta/classes/image-postproc-extension.bbclass | 40 -------------- meta/classes/image.bbclass | 20 ------- meta/recipes-core/base-files/base-files.bb | 6 ++ meta/recipes-core/base-files/base-files.inc | 55 +++++++++++++++++++ 5 files changed, 63 insertions(+), 60 deletions(-) create mode 100644 meta/recipes-core/base-files/base-files.bb create mode 100644 meta/recipes-core/base-files/base-files.inc diff --git a/meta-isar/recipes-core/images/isar-image-base.bb b/meta-isar/recipes-core/images/isar-image-base.bb index b381d85..4aa7e66 100644 --- a/meta-isar/recipes-core/images/isar-image-base.bb +++ b/meta-isar/recipes-core/images/isar-image-base.bb @@ -11,3 +11,5 @@ LIC_FILES_CHKSUM = "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=751419260 PV = "1.0" inherit image + +IMAGE_INSTALL += "base-files" diff --git a/meta/classes/image-postproc-extension.bbclass b/meta/classes/image-postproc-extension.bbclass index 3f00c21..22c6a95 100644 --- a/meta/classes/image-postproc-extension.bbclass +++ b/meta/classes/image-postproc-extension.bbclass @@ -1,38 +1,6 @@ # This software is a part of ISAR. # Copyright (C) Siemens AG, 2019 -update_etc_os_release() { - OS_RELEASE_BUILD_ID="" - OS_RELEASE_VARIANT="" - OS_RELEASE_VARIANT_VERSION="" - while true; do - case "$1" in - --build-id) OS_RELEASE_BUILD_ID=$2; shift ;; - --variant) OS_RELEASE_VARIANT=$2; shift ;; - --version) OS_RELEASE_VARIANT_VERSION=$2; shift ;; - -*) bbfatal "$0: invalid option specified: $1" ;; - *) break ;; - esac - shift - done - - if [ -n "${OS_RELEASE_BUILD_ID}" ]; then - sudo sed -i '/^BUILD_ID=.*/d' '${IMAGE_ROOTFS}/etc/os-release' - echo "BUILD_ID=\"${OS_RELEASE_BUILD_ID}\"" | \ - sudo tee -a '${IMAGE_ROOTFS}/etc/os-release' - fi - if [ -n "${OS_RELEASE_VARIANT}" ]; then - sudo sed -i '/^VARIANT=.*/d' '${IMAGE_ROOTFS}/etc/os-release' - echo "VARIANT=\"${OS_RELEASE_VARIANT}\"" | \ - sudo tee -a '${IMAGE_ROOTFS}/etc/os-release' - fi - if [ -n "${OS_RELEASE_VARIANT_VERSION}" ]; then - sudo sed -i '/^ISAR_IMAGE_VERSION=.*/d' '${IMAGE_ROOTFS}/etc/os-release' - echo "VARIANT_VERSION=\"${PV}\"" | \ - sudo tee -a '${IMAGE_ROOTFS}/etc/os-release' - fi -} - ROOTFS_POSTPROCESS_COMMAND =+ "image_postprocess_configure" image_postprocess_configure() { # Configure root filesystem @@ -45,14 +13,6 @@ image_postprocess_configure() { fi } -ROOTFS_POSTPROCESS_COMMAND =+ "image_postprocess_mark" - -image_postprocess_mark() { - BUILD_ID=$(get_build_id) - update_etc_os_release \ - --build-id "${BUILD_ID}" --variant "${DESCRIPTION}" --version "${PV}" -} - ROOTFS_POSTPROCESS_COMMAND =+ "image_postprocess_machine_id" image_postprocess_machine_id() { # systemd(1) takes care of recreating the machine-id on first boot diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index eddc444..d849175 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -49,9 +49,6 @@ SRC_URI += "${@ cfg_script(d) }" DEPENDS += "${IMAGE_INSTALL}" -ISAR_RELEASE_CMD_DEFAULT = "git -C ${LAYERDIR_core} describe --tags --dirty --match 'v[0-9].[0-9]*'" -ISAR_RELEASE_CMD ?= "${ISAR_RELEASE_CMD_DEFAULT}" - image_do_mounts() { sudo flock ${MOUNT_LOCKFILE} -c ' \ mkdir -p "${BUILDROOT_DEPLOY}" "${BUILDROOT_ROOTFS}" "${BUILDROOT_WORK}" @@ -91,23 +88,6 @@ def get_rootfs_size(d): return base_size + rootfs_extra * 1024 -# here we call a command that should describe your whole build system, -# this could be "git describe" or something similar. -# set ISAR_RELEASE_CMD to customize, or override do_mark_rootfs to do something -# completely different -get_build_id() { - if [ $(echo ${BBLAYERS} | wc -w) -ne 2 ] && - [ "${ISAR_RELEASE_CMD}" = "${ISAR_RELEASE_CMD_DEFAULT}" ]; then - bbwarn "You are using external layers that will not be" \ - "considered in the build_id. Consider changing" \ - "ISAR_RELEASE_CMD." - fi - if ! ( ${ISAR_RELEASE_CMD} ) 2>/dev/null; then - bbwarn "\"${ISAR_RELEASE_CMD}\" failed, returning empty build_id." - echo "" - fi -} - python set_image_size () { rootfs_size = get_rootfs_size(d) d.setVar('ROOTFS_SIZE', str(rootfs_size)) diff --git a/meta/recipes-core/base-files/base-files.bb b/meta/recipes-core/base-files/base-files.bb new file mode 100644 index 0000000..d250fc5 --- /dev/null +++ b/meta/recipes-core/base-files/base-files.bb @@ -0,0 +1,6 @@ +# This software is a part of ISAR. +# Copyright (c) Mentor, A Siemens Business, 2021 +# +# SPDX-License-Identifier: MIT + +require base-files.inc diff --git a/meta/recipes-core/base-files/base-files.inc b/meta/recipes-core/base-files/base-files.inc new file mode 100644 index 0000000..68d0e3a --- /dev/null +++ b/meta/recipes-core/base-files/base-files.inc @@ -0,0 +1,55 @@ +# This software is a part of ISAR. +# Copyright (c) Mentor, A Siemens Business, 2021 +# +# SPDX-License-Identifier: MIT + +inherit dpkg + +SRC_URI = "apt://${PN}" + +S="${WORKDIR}/${PN}" + +MAINTAINER = "isar-users " +CHANGELOG_V = "+isar" + +ISAR_RELEASE_CMD_DEFAULT = "git -C ${LAYERDIR_core} describe --tags --dirty --match 'v[0-9].[0-9]*'" +ISAR_RELEASE_CMD ?= "${ISAR_RELEASE_CMD_DEFAULT}" +OS_RELEASE_VARIANT = "Isar target filesystem" +OS_RELEASE_VARIANT_VERSION = "1.0" + +# here we call a command that should describe your whole build system, +# this could be "git describe" or something similar. +# set ISAR_RELEASE_CMD to customize, or override do_mark_rootfs to do something +# completely different +get_build_id() { + if [ $(echo ${BBLAYERS} | wc -w) -ne 2 ] && + [ "${ISAR_RELEASE_CMD}" = "${ISAR_RELEASE_CMD_DEFAULT}" ]; then + bbwarn "You are using external layers that will not be" \ + "considered in the build_id. Consider changing" \ + "ISAR_RELEASE_CMD." + fi + if ! ( ${ISAR_RELEASE_CMD} ) 2>/dev/null; then + bbwarn "\"${ISAR_RELEASE_CMD}\" failed, returning empty build_id." + echo "" + fi +} + +do_prepare_build() { + deb_add_changelog + OS_RELEASE_BUILD_ID=$(get_build_id) + if [ -n "${OS_RELEASE_BUILD_ID}" ]; then + sed -i '/^BUILD_ID=.*/d' '${S}/etc/os-release' + echo "BUILD_ID=\"${OS_RELEASE_BUILD_ID}\"" | \ + tee -a '${S}/etc/os-release' + fi + if [ -n "${OS_RELEASE_VARIANT}" ]; then + sed -i '/^VARIANT=.*/d' '${S}/etc/os-release' + echo "VARIANT=\"${OS_RELEASE_VARIANT}\"" | \ + tee -a '${S}/etc/os-release' + fi + if [ -n "${OS_RELEASE_VARIANT_VERSION}" ]; then + sed -i '/^VARIANT_VERSION=.*/d' '${S}/etc/os-release' + echo "VARIANT_VERSION=\"${OS_RELEASE_VARIANT_VERSION}\"" | \ + tee -a '${S}/etc/os-release' + fi +} -- 2.17.1