From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6450128687666823168 X-Received: by 10.28.138.194 with SMTP id m185mr35607wmd.28.1501787614458; Thu, 03 Aug 2017 12:13:34 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.46.25.129 with SMTP id 1ls73335ljz.41.gmail; Thu, 03 Aug 2017 12:13:34 -0700 (PDT) X-Received: by 10.46.87.4 with SMTP id l4mr494402ljb.39.1501787614193; Thu, 03 Aug 2017 12:13:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1501787614; cv=none; d=google.com; s=arc-20160816; b=IFMU0xcL4mohW1U4HwRYP8uEHYAoLQR4c7XA1MCEUiyZasy6F3/oR3NX3DixUNBGmH vocVByJYxK6Z2nCUjfY2QqOT6iegydmN4yynG7bgZmZdKhSa4TK7l2VbBqgjW4WrBmsk 30+ZcrFSDGi4nd/vQSVMRhj3v6jbCVr5B5ICMkNgMJCJ0aFITZ8QB6L2kaE9DInEbDq8 K15BebHwNXVTaeKNhDtzb1PD8mkzbI7pOhcVY0RcB55mbzc7uIFon58Cdl9YN17zMKkz LaNlzPLMJwKgivGewgQhKSSoYRpECrTyneN9RkwEE8tVLSHSHhp+wBSMRVE/NmAtHdoy agmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=uI6u7tj0LGT+dVwlUcdqH5iHgDu9kwqScwKZ0x6ryiE=; b=M/0R1B1oCUJqhFxqg/GNz5pEpbUoAYzT+abzjGNvZYGojVOliT7u97UjfbcwGwWzrE yx6kx11CGBn9OKzP/ezcL/YnzU18aSNg/Syga3qDvmnAcdyaPN6t09gqcVXs5UIdpFLA H7NcfK7PfTMvc5aWhLd4dxNkibeGxvshYdsAxHlGxJjst0fP5N4rC3Hk2UgbMhUw1B/X 55RRDOhwhsM5mWRHUXHI7hQ60Rc2tZRSz06d6k1/XgdjAUtZDR8Y6/oMTL2/n/sX/Qcy vxOCk6urwrH1u0SIG14jXufaK8Abjh5lLjWoI20cn/YFx8rgJrRi1Bf4WsW3xT/YwjST xF9Q== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=neutral (google.com: 192.35.17.28 is neither permitted nor denied by best guess record for domain of henning.schild@siemens.com) smtp.mailfrom=henning.schild@siemens.com Return-Path: Received: from goliath.siemens.de (goliath.siemens.de. [192.35.17.28]) by gmr-mx.google.com with ESMTPS id u70si1084668wmu.3.2017.08.03.12.13.34 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Aug 2017 12:13:34 -0700 (PDT) Received-SPF: neutral (google.com: 192.35.17.28 is neither permitted nor denied by best guess record for domain of henning.schild@siemens.com) client-ip=192.35.17.28; Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 192.35.17.28 is neither permitted nor denied by best guess record for domain of henning.schild@siemens.com) smtp.mailfrom=henning.schild@siemens.com Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id v73JDXEQ015840 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 3 Aug 2017 21:13:33 +0200 Received: from md1em3qc.erlm.siemens.de ([139.22.106.2]) by mail1.siemens.de (8.15.2/8.15.2) with ESMTP id v73JDVpk008615; Thu, 3 Aug 2017 21:13:33 +0200 From: Henning Schild To: isar-users@googlegroups.com Cc: Alexander Smirnov , Henning Schild Subject: [PATCH 11-16 of 16 v2 5/6] meta: add dpkg-bin class Date: Thu, 3 Aug 2017 21:15:23 +0200 Message-Id: X-Mailer: git-send-email 2.13.0 In-Reply-To: References: In-Reply-To: References: X-TUID: KDgazEcCwjkJ This class introduces a new class for building debian packages on the fly. They can basically contain anything from random sources, where building happens outside of Isar. It also allows to create meta-packages that contain nothing but pull in dependencies, once all our packets come in via multistrap that will come in handy. For rootfs configuration you would use post- and pre- scripts just like regular debian packages do. Signed-off-by: Henning Schild --- meta/classes/dpkg-bin.bbclass | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 meta/classes/dpkg-bin.bbclass diff --git a/meta/classes/dpkg-bin.bbclass b/meta/classes/dpkg-bin.bbclass new file mode 100644 index 0000000..29480ff --- /dev/null +++ b/meta/classes/dpkg-bin.bbclass @@ -0,0 +1,56 @@ +# This software is a part of ISAR. +# Copyright (C) 2017 Siemens AG + +inherit isar-base-dpkg + +DEBIAN_DEPENDS ?= "" +MAINTAINER ?= "FIXME Unknown maintainer" + +D = "${WORKDIR}/image/" + +# Populate folder that will be picked up as package +do_install() { + bbnote "Put your files for this package in ${D}" +} + +addtask install after do_unpack before do_deb_package_prepare + +# so we can put hooks etc. in there already +do_install[dirs] = "${D}/DEBIAN" + +do_deb_package_prepare() { + cat<<-__EOF__ > ${D}/DEBIAN/control + Package: ${PN} + Architecture: `dpkg --print-architecture` + Section: misc + Priority: optional + Maintainer: ${MAINTAINER} + Depends: `echo ${DEBIAN_DEPENDS} | tr '[:blank:]' ','` + Version: ${PV}+isar + Description: ${DESCRIPTION} + __EOF__ + for t in pre post + do + for a in inst rm + do + chmod -f +x ${D}/DEBIAN/${t}${a} || true + done + done +} + +addtask deb_package_prepare after do_install before do_deb_package_conffiles + +do_deb_package_conffiles() { + CONFFILES=${D}/DEBIAN/conffiles + find ${D} -type f -path '*/etc/*' | sed -e 's|^${D}|/|' >> $CONFFILES + test -s $CONFFILES || rm $CONFFILES +} + +addtask deb_package_conffiles after do_deb_package_prepare before do_deb_package + +do_deb_package() { + sudo chown -R root:root ${D}/DEBIAN/ + sudo dpkg-deb --build ${D} ${WORKDIR} +} + +addtask deb_package after do_deb_package_conffiles before do_package_write_deb -- 2.13.0