From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6460145511220379648 X-Received: by 10.28.128.205 with SMTP id b196mr454574wmd.12.1504168711932; Thu, 31 Aug 2017 01:38:31 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.46.0.170 with SMTP id e42ls554409lji.26.gmail; Thu, 31 Aug 2017 01:38:31 -0700 (PDT) X-Google-Smtp-Source: ADKCNb45HzWT656qLvRsl5P52cF2fYqRFSaj5SWfocweD+mNE6yz+4ET7uRWqZIfARqbHl0+Ej99 X-Received: by 10.46.22.93 with SMTP id 29mr392712ljw.15.1504168711499; Thu, 31 Aug 2017 01:38:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1504168711; cv=none; d=google.com; s=arc-20160816; b=TN6fHdNPDI4z+85sync1eQya3xSWKlUkPPgg3wRAIi93wp9RjkBYAUVSN3VtJm9FOg uxxBkTtqIL94XVAIHk7jXqgiT7CANvPDP9OZUxRugIV7vAhzSt3gWO4nSuNbjlfsryKY YvjanJ+m2Fn6nmtM7gD8rbpJxOG8vf0v4qLEN9ekwty5DraqTibSS3u7MKPJzki6xCjd gx4zad/fj52KFvGBZmagsrxICgv3pDufvdZZeFfhEPV8GGC2QKH9EYD3GOLu5f+mJZEU d1fuZbzEnQiF5H+DJBjxhEX+/iYvNg0BCzcp8BH6qAvtsA4SSMfyZX/26PVkh13laKqI iN0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:references:cc:to:subject :arc-authentication-results; bh=MgNNxq0x2uVqENYQU8QHl0CqGVFOj4KFsJQWUPHPwMg=; b=QJHRapsOpV38NYtkGihmkjWt3fbtJVUiAoVKzKz4CbC7RBku77lcnSEYWWHBZsKO36 sJNfrVOP1qJGpu7u5L5nhSL4LT4Pz4wkW+P8OEkj2ETmWMpaJTmfgTgBu0VOAirs03TF lcYE0KIqZSL4n3sLmyGBhYcdCpSJxDkPW7zXRX1PomSyjx9HBy+0J93/Yb3+QngGYZJI alKnVoXx/3nnEoRxBltaKR692o756+pO1HHQIU8y0kraraTwoW8NLaPUsdSySP8ADP6R PLqKjscUObf7eBxbnFuDjeQlYQ52Yqx8zY3zNSYubR3U1SjJbmSRP6bDypmxgiGhiR6K XmvQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=neutral (google.com: 192.35.17.14 is neither permitted nor denied by best guess record for domain of claudius.heine.ext@siemens.com) smtp.mailfrom=claudius.heine.ext@siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id v7si144887wmb.3.2017.08.31.01.38.31 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 Aug 2017 01:38:31 -0700 (PDT) Received-SPF: neutral (google.com: 192.35.17.14 is neither permitted nor denied by best guess record for domain of claudius.heine.ext@siemens.com) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 192.35.17.14 is neither permitted nor denied by best guess record for domain of claudius.heine.ext@siemens.com) smtp.mailfrom=claudius.heine.ext@siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id v7V8cUK4030695 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 31 Aug 2017 10:38:30 +0200 Received: from [139.25.68.223] (linux-ses-ext02.ppmd.siemens.net [139.25.68.223]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id v7V8cUR9000421; Thu, 31 Aug 2017 10:38:30 +0200 Subject: Re: [PATCH 5/6] meta/dpkg: add dpkg-custom class To: "[ext] Henning Schild" , isar-users@googlegroups.com Cc: Alexander Smirnov , Christian Storm , Claudius Heine References: <356cb2c3f7dfead49d75580fdff10dfa8c41232e.1504119538.git.henning.schild@siemens.com> From: Claudius Heine Message-ID: <75fe7dd9-7cf0-9f10-7060-64b69fa38194@siemens.com> Date: Thu, 31 Aug 2017 10:38:30 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <356cb2c3f7dfead49d75580fdff10dfa8c41232e.1504119538.git.henning.schild@siemens.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: mJtUp+t6anhe Hi On 08/30/2017 09:03 PM, [ext] Henning Schild wrote: > Issues: > 1. full customizations of the images is hard to impossible to > realize in a layer without touching Isar > 1.1. there is no easy way to just copy a file into the image > 1.2. configuration (passwords, groups, cfg-files changes) can not be > done in a layer, there is no way too hook into multistrap or the > configure-script > > Change: > Introduce a class that lets users create custom debian packages on the > fly, without having to create a /debian directory and actually building. > That allows you to pull in debian-dependencies, you could have a > package that has no content and is just there to install what you need > for a feature of your product. > Using package hooks (preinst, postinst ..) you can configure pretty much > all you want when installing the package. > The package can contain actual payload as well, basically any files that > come from "somewhere else". Say binary data like wallpapers, sound files > or application binaries. > > Impact: > This patch addresses the metioned issue in a way that uses debian > mechanism. All the customizations will enjoy features like > - collission protection (multiple packages providing the same file) > - config file protection > - versioning and the ability to deploy your changes in an updateable way > > This patch introduces a major new feature to Isar. > > 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-custom.bbclass | 57 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 57 insertions(+) > create mode 100644 meta/classes/dpkg-custom.bbclass Also not a big fan of this name. 'custom' is a bit too unspecific for what it does. I get that your idea that those packages are *custom* made, but at the same time, so are all the packages that are directly created within isar. I liked the old 'dpkg-bin' name more, but maybe even this is a bit to unspecific. How about 'dpkg-plain'? That describes better that those packages are very simple, created impromptu without much to it, IMO. Cheers, Claudius > > diff --git a/meta/classes/dpkg-custom.bbclass b/meta/classes/dpkg-custom.bbclass > new file mode 100644 > index 0000000..e4e743f > --- /dev/null > +++ b/meta/classes/dpkg-custom.bbclass > @@ -0,0 +1,57 @@ > +# This software is a part of ISAR. > +# Copyright (C) 2017 Siemens AG > + > +inherit dpkg > + > +DEBIAN_DEPENDS ?= "" > +MAINTAINER ?= "FIXME Unknown maintainer" > + > +D = "${WORKDIR}/image/" > + > +# Populate folder that will be picked up as package > +# TODO this should be called 'do_install' > +do_populate_package() { > + bbnote "Put your files for this package in ${D}" > +} > + > +addtask populate_package after do_unpack before do_deb_package_prepare > + > +# so we can put hooks etc. in there already > +do_populate_package[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_populate_package 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_install > -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de