From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7010292021791293440 X-Received: by 2002:a5d:6cb1:: with SMTP id a17mr33096909wra.72.1632210803920; Tue, 21 Sep 2021 00:53:23 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:adf:9bd7:: with SMTP id e23ls1628752wrc.2.gmail; Tue, 21 Sep 2021 00:53:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxBr1xyJ6tWWxKWEqbKP1yCvZmVRIaLMBZH5aLpNRa7BlTPjFDaIwrzr8dAnyN4VuGsGVSL X-Received: by 2002:a5d:4344:: with SMTP id u4mr15196379wrr.106.1632210802991; Tue, 21 Sep 2021 00:53:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632210802; cv=none; d=google.com; s=arc-20160816; b=msvEfOf5fAYaf9Vmng2esvIpA7ZJ4TnK37tbLMJWAJfpG7MgDoa4IaWIMoRXmM8lJ+ hsQtYUnOt5jHQZ6vcth8l2pwLHZ/9/VYR56H3wVs0j/4TClQx4Q7R5jg06HrkhsAYFid 2R1cmOUc+v85bsXtF1C2VhyezMjewwLu1wMQ6mqDZkFQNDOJRz0F8SzS/XwN24PMmEc1 ZT75W3ACaGTRM+aIfD+bR7FrhJNrBfi1KnSQMmfSIqBFXpGimRBm7MCuE2xiFUO3FofP zFqLODo3F8MiB4Hfx0MggQd1JawbuQhmEZ1F5GbKSyRv2c3MgnCF29GMffMZKIX8Xcs1 QVJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from; bh=McAVvY+H+J4/yI1LiGksPkn/uGbyNnVC57+YMtWcSeU=; b=pdxsMUV4a21HLpR7Oz5sW2c8sKhscYShqgwpRMdwqDXD5nsYYaKmvbceo9cgMAD9MW gHPvcJ+hH3MOdl3CzpvzLZpxnP9Sd/ofjY0eBMKOuaVoCjeOCkcVgZrKPO2Uj2NZlPWt RSNePZW2KLfer0yhK5ZDRv3YxyVS+cyK390kyje1Zcae9uSGe5rOe2djRkrFmEIUhQ/d 0nmnpCmTCynVnqqtDDgF5kj1G8KosyBRtgVChEGQg86YIP6zbiyhjA2zW9FqHLtm111A d+v5r8q8B274daF5hvoFHjF9pqzcp2l9mELQiLEw33rGWyRmYq2m4R03Bxq1Ak9idw/P qqqw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of adriaan.schmidt@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=adriaan.schmidt@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from thoth.sbs.de (thoth.sbs.de. [192.35.17.2]) by gmr-mx.google.com with ESMTPS id r19si336148wrc.1.2021.09.21.00.53.22 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Sep 2021 00:53:22 -0700 (PDT) Received-SPF: pass (google.com: domain of adriaan.schmidt@siemens.com designates 192.35.17.2 as permitted sender) client-ip=192.35.17.2; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of adriaan.schmidt@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=adriaan.schmidt@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id 18L7rM7o002461 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 21 Sep 2021 09:53:22 +0200 Received: from random.ppmd.siemens.net (random.ppmd.siemens.net [139.25.68.25]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 18L7rMQY023851; Tue, 21 Sep 2021 09:53:22 +0200 From: Adriaan Schmidt To: isar-users@googlegroups.com Cc: Adriaan Schmidt Subject: [PATCH] meta: add dpkg-prebuilt.bbclass Date: Tue, 21 Sep 2021 09:53:00 +0200 Message-Id: <20210921075300.25327-1-adriaan.schmidt@siemens.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: MjVmxtbAREnG This puts the existing example pattern to inject prebuilt deb packages (prebuilt-deb recipe) into a class, and adds two new features: * `unpack=false` is added automatically. * dpkg_build is removed using `deltask` instead of replacing with nop. This way also other dependent tasks (patch, prepare_build, ...) are skipped. The existing example recipe is changed to use the new class. Signed-off-by: Adriaan Schmidt --- .../prebuilt-deb/prebuilt-deb_0.1.bb | 9 ++------- meta/classes/dpkg-prebuilt.bbclass | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 meta/classes/dpkg-prebuilt.bbclass diff --git a/meta-isar/recipes-app/prebuilt-deb/prebuilt-deb_0.1.bb b/meta-isar/recipes-app/prebuilt-deb/prebuilt-deb_0.1.bb index 2f1b699..35a0da3 100644 --- a/meta-isar/recipes-app/prebuilt-deb/prebuilt-deb_0.1.bb +++ b/meta-isar/recipes-app/prebuilt-deb/prebuilt-deb_0.1.bb @@ -3,18 +3,13 @@ # # SPDX-License-Identifier: MIT -inherit dpkg-base +inherit dpkg-prebuilt # NOTE: The deb packages should almost never be stored in the repo itself but # rather fetched from a binary-serving location. For this example, local # storage was just simpler to maintain across all archs and distros. -# -# 2nd NOTE: "unpack=false" is important, bitbake unpacks deb files otherwise -SRC_URI = "file://example-prebuilt_1.0.0-0_all.deb;unpack=false" +SRC_URI = "file://example-prebuilt_1.0.0-0_all.deb" # Only needed if recipe name != package name, as in this case. Or multiple # packages are provided by a single recipe. PROVIDES += "example-prebuilt" - -do_dpkg_build() { -} diff --git a/meta/classes/dpkg-prebuilt.bbclass b/meta/classes/dpkg-prebuilt.bbclass new file mode 100644 index 0000000..c32224b --- /dev/null +++ b/meta/classes/dpkg-prebuilt.bbclass @@ -0,0 +1,20 @@ +# This software is a part of ISAR. +# Copyright (C) 2021 Siemens AG +# +# SPDX-License-Identifier: MIT + +inherit dpkg-base + +python do_unpack_prepend() { + # enforce unpack=false + src_uri = (d.getVar('SRC_URI', True) or '').split() + if len(src_uri) == 0: + return + def ensure_unpack_false(uri): + return ';'.join([x for x in uri.split(';') if not x.startswith('unpack=')] + ['unpack=false']) + src_uri = [ensure_unpack_false(uri) for uri in src_uri] + d.setVar('SRC_URI', ' '.join(src_uri)) +} + +deltask dpkg_build +addtask unpack before do_deploy_deb -- 2.20.1