From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6572151760657317888 X-Received: by 2002:a2e:965a:: with SMTP id z26-v6mr1363944ljh.5.1530604143403; Tue, 03 Jul 2018 00:49:03 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:9ed8:: with SMTP id h24-v6ls2279206ljk.8.gmail; Tue, 03 Jul 2018 00:49:02 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdNLqMg65VY6t4RHfJ5vMW+/oMxpe/QlarZ1C0ZUxxx4PfGIIuoa+aR+0iRCorpOyVdkgZV X-Received: by 2002:a2e:95ce:: with SMTP id y14-v6mr187233ljh.12.1530604142919; Tue, 03 Jul 2018 00:49:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530604142; cv=none; d=google.com; s=arc-20160816; b=hLbjZrIHGvR69u8quFL97m7hnqk5ubj3rZK+2xqKnnjHPFT+zct38faMUdOcC3CvhM Pb5q/RmjM2Jz88VXEC2xe/bcsKCw2n+YOCi8HG2TmX+pz2XjUFHsDcbpHvpYbEzPD2mY bhN+uXun8E9k/kTdiuPHt4aYg7DJb8B2HOtJmtaUIgm6gHiSuxSVSam+mW3o/nUHmdkF d90zcpe3HIfbSMEbt8b592sokTPqM9Omq0ISeAVh6TRXc3UVxHbUt69eWyZY3CA28/4I ylQq9ROFXVXAWlaU7IJrLW62BBoQC67wRVDAutuouIadonW6D8DpnyCCNKUefYdpFmRc H/pw== 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:cc:to:from:date:arc-authentication-results; bh=B/owKbUKgqYFphqt70/AZjg3GPknjwVWtQQ+PJgAD/8=; b=ogUJdJ0Rt5nNF6rkqd0iAvjfHXHzxOZSEFQJsB9WTk7jW6XlnS4IrI/iyjTdz5icrA kJlfdoMtwSZT+dfZ+gHp/YJV/9r0wv22TKmg2avZp+i80yVKXyBVgWdl//7PczoWT7am X7kFyVEQGYsA1ccWMOM6NVZbuyLldpuWxHzm9k51INFL0mj/nyCMlCpaC1+nlbt2Vn0H HUYppsmX8N4jlDypg/hUZyf+BXd44Dv8WWJ+n5iCImEudFhAkyCWFMNNcXv2/ZsyRFvk 5B98P620/4llqSZ/imGNuyKON4XRdHCQFvUDKoYlykwGQmCHMko2uQzde9HFdXP74n3U dSBw== 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 p198-v6si24719lfp.0.2018.07.03.00.49.02 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 03 Jul 2018 00:49:02 -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 mail3.siemens.de (mail3.siemens.de [139.25.208.14]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id w637n25a000631 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 3 Jul 2018 09:49:02 +0200 Received: from md1pvb1c.ad001.siemens.net (md1pvb1c.ad001.siemens.net [139.25.68.40]) by mail3.siemens.de (8.15.2/8.15.2) with ESMTP id w637n11L024062; Tue, 3 Jul 2018 09:49:01 +0200 Date: Tue, 3 Jul 2018 09:49:01 +0200 From: Henning Schild To: Cc: "Maxim Yu . Osipov" , Jan Kiszka Subject: Re: [PATCH] meta/image: allow customization of command we use fo BUILD_ID Message-ID: <20180703094901.48e84ee4@md1pvb1c.ad001.siemens.net> In-Reply-To: <20180703073928.25857-1-henning.schild@siemens.com> References: <4cb847ca-f5ce-6765-602e-9d5263746a3f@ilbers.de> <20180703073928.25857-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: HpEklQbPRXls Hi, so this is what i came up with now. It allows the user to specify a totally custom command, not even git-specific. The interface is one variable ISAR_RELEASE_CMD and the task do_mark_rootfs. Alternative commands could i.e. be ISAR_RELEASE_CMD = "true" # to disable or hg, svn, "echo 42" ... If the command fails we always get the empty string. Here we could discuss if "v${PV}" would make sense. In that case isar-image-base should increment its PV on every Isar release. Henning Am Tue, 3 Jul 2018 09:39:28 +0200 schrieb Henning Schild : > One of the previous patches introduced the feature to leave some build > system information in the rootfs. The git command to derive that > information was kept pretty repository agnostic. > > This patch makes the command Isar-specific and allows users to > customize the command to their needs if they use a different tagging > scheme in their repository, or if they do not use git at all. > > Signed-off-by: Henning Schild > --- > meta-isar/recipes-core/images/isar-image-base.bb | 3 ++- > meta/classes/image.bbclass | 27 > ++++++++++++------------ 2 files changed, 16 insertions(+), 14 > deletions(-) > > diff --git a/meta-isar/recipes-core/images/isar-image-base.bb > b/meta-isar/recipes-core/images/isar-image-base.bb index > c72bfdb..a24aa3e 100644 --- > a/meta-isar/recipes-core/images/isar-image-base.bb +++ > b/meta-isar/recipes-core/images/isar-image-base.bb @@ -24,7 +24,8 @@ > IMAGE_TRANSIENT_PACKAGES += "isar-cfg-localepurge" > WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}" > > -ISAR_GIT_RELEASE_PATH ?= "${LAYERDIR_isar}" > +ISAR_RELEASE_CMD_DEFAULT = "git -C ${LAYERDIR_isar} describe --tags > --dirty --match 'v[0-9].[0-9]*'" +ISAR_RELEASE_CMD ?= > "${ISAR_RELEASE_CMD_DEFAULT}" > do_rootfs[root_cleandirs] = "${IMAGE_ROOTFS} \ > ${IMAGE_ROOTFS}/isar-apt" > diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass > index 7935b69..077c550 100644 > --- a/meta/classes/image.bbclass > +++ b/meta/classes/image.bbclass > @@ -34,24 +34,25 @@ def get_rootfs_size(d): > > return base_size + rootfs_extra * 1024 > > -# we assume that one git commit can describe the whole image, so you > should be -# using submodules, kas, or something like that > -# set ISAR_GIT_RELEASE_PATH to that one "most significant" layer > -# when not using git, override do_mark_rootfs > +# 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 > def get_build_id(d): > import subprocess > if (len(d.getVar("BBLAYERS", True).strip().split(' ')) != 2 and > - (d.getVar("ISAR_GIT_RELEASE_PATH", True) == > - d.getVar("LAYERDIR_isar", True))): > + (d.getVar("ISAR_RELEASE_CMD", True) == > + d.getVar("ISAR_RELEASE_CMD_DEFAULT", True))): > bb.warn('You are using external layers that will not be > considered' + > - ' in the build_id. Considder setting > ISAR_GIT_RELEASE_PATH.') > - base = ["git", "-C", d.getVar("ISAR_GIT_RELEASE_PATH", True)] > - if (0 == subprocess.call(base + ["rev-parse"])): > - v = subprocess.check_output(base + > - ["describe", "--long", "--dirty", > - "--always"], > universal_newlines=True) > + ' in the build_id. Consider changing > ISAR_RELEASE_CMD.') > + cmd = d.getVar("ISAR_RELEASE_CMD", True) > + try: > + v = subprocess.check_output(cmd, shell=True, > universal_newlines=True) return v.rstrip() > - return "" > + except subprocess.CalledProcessError as e: > + bb.warn('\"%s\" returned %d, returning empty build_id' % > + (e.cmd, e.returncode)) > + return "" > > python set_image_size () { > rootfs_size = get_rootfs_size(d)