From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6521574337769635840 X-Received: by 10.200.39.34 with SMTP id g31mr770557qtg.1.1518526200550; Tue, 13 Feb 2018 04:50:00 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 10.237.35.104 with SMTP id i37ls9233222qtc.6.gmail; Tue, 13 Feb 2018 04:50:00 -0800 (PST) X-Google-Smtp-Source: AH8x224HhZydZfj9VawOR7ruZnjHcSx1R679CaU102/ayymB/D2WbTIdlrrGtHnSgSwWGLeK3Yag X-Received: by 10.200.48.37 with SMTP id f34mr819491qte.50.1518526200084; Tue, 13 Feb 2018 04:50:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518526200; cv=none; d=google.com; s=arc-20160816; b=drXc1df9ICgL2RF0Q6IsjA3k6crEKQq43CeNsPT6jgxXLsAgc0S18hg637PAVNnPfr RpQBaUNzwdd2jodweAZbFsDucuSVkG2HLTvGY2F9d2BnW7kK2/I7QCmjqfBSsWJjqmOx sq2ifFnitu36rzdorQ5QwjUo9cRw4EfF2wNjSwsrzNxw+uzjkcoa6cN+s9SYbhaXaTOV kXuVccDE/3crBJVtS7AJ2wCpi3Ek2TYeD1uadRBM9SsRF4DiMjRCg6i/x4orBFSS1ZK3 OBzbybi8kmCSfIo/VbIMmcs966dRdBhz6ldW93BKTNYuRc1buDMVP1Dv4SWOfiYi1adS cLjA== 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:to:subject :arc-authentication-results; bh=VJ3vhSewxxNt6UN29VZVStIZBHqYaWB6z/D+DK078+g=; b=dHqTav1/Ng+SlCPECkCdS5LIODX9M1R2DvO0m1itF1NpgDa4L0Yj68Hd2ENX9SOkCG mgGduLjRP7TozTtv5Pn0OIGFzZvXsq6wTSOKKyzTDC2oXbINXeyPWESUTT0OwisJfluG YHlRO8IrAl+j+i/MaskaTKy8Qwdc4X2VkGBYbNokR8L+xJ3hQ/hKEBqmYhskE2L799hT BzMwdWgJNA+tJeW8MbCkebLQR2cwlYvmrvdWuIB1Lw00npbrj+OfvTifoeAgo+i8u/J6 FkcVe2dVHA/q+uMnvr5n2npqAybdqpNOahZ/FMzwkGadrt61EkhQzvKGrfUhX1Z1yt7i 0o+Q== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Return-Path: Received: from aqmola.ilbers.de (aqmola.ilbers.de. [85.214.62.211]) by gmr-mx.google.com with ESMTPS id k9si703051qti.5.2018.02.13.04.49.58 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Feb 2018 04:49:59 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) client-ip=85.214.62.211; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Received: from [10.0.2.15] ([188.227.110.165]) (authenticated bits=0) by aqmola.ilbers.de (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id w1DCnrrd006033 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 13 Feb 2018 13:49:54 +0100 Subject: Re: [PATCH 2/6] Add clean and cleanall tasks To: Jan Kiszka , isar-users References: From: Alexander Smirnov Message-ID: Date: Tue, 13 Feb 2018 15:49:48 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: cN4VDbMCSxCc On 02/12/2018 10:59 AM, Jan Kiszka wrote: > From: Jan Kiszka > > Derived from OE, this adds clean and cleanall tasks for Isar. The clean > task comes with CLEANFUNCS hook, we just run them prior to cleaning the > WORKDIR. This is used by dpkg-base to remove all packages from isar-apt > that the build may have deployed. > > As we are at it, also do a repo clean prior to deploying a package - > just in case something triggers a partial rebuild without prior > cleaning... > Very good! :-) I think, we also should erase the package's "PROVIDES" from buildchroot (like libhello-dev). This could be implemented later in next series. Alex > Signed-off-by: Jan Kiszka > --- > meta/classes/base.bbclass | 35 ++++++++++++++++++++++++++++++++++- > meta/classes/dpkg-base.bbclass | 14 ++++++++++++++ > 2 files changed, 48 insertions(+), 1 deletion(-) > > diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass > index 0fa27db..b0e174e 100644 > --- a/meta/classes/base.bbclass > +++ b/meta/classes/base.bbclass > @@ -110,4 +110,37 @@ python base_do_build () { > bb.note("Try running the 'listtasks' task against a .bb to see what tasks are defined.") > } > > -EXPORT_FUNCTIONS do_clean do_mrproper do_build > +EXPORT_FUNCTIONS do_build > + > +CLEANFUNCS ?= "" > + > +# Derived from OpenEmbedded Core: meta/classes/utility-tasks.bbclass > +addtask clean > +do_clean[nostamp] = "1" > +python do_clean() { > + import subprocess > + > + for f in (d.getVar('CLEANFUNCS', True) or '').split(): > + bb.build.exec_func(f, d) > + > + dir = d.expand("${WORKDIR}") > + subprocess.call('sudo rm -rf ' + dir, shell=True) > + > + dir = "%s.*" % bb.data.expand(d.getVar('STAMP', False), d) > + subprocess.call('sudo rm -rf ' + dir, shell=True) > +} > + > +# Derived from OpenEmbedded Core: meta/classes/base.bbclass > +addtask cleanall after do_clean > +do_cleanall[nostamp] = "1" > +python do_cleanall() { > + src_uri = (d.getVar('SRC_URI', True) or "").split() > + if len(src_uri) == 0: > + return > + > + try: > + fetcher = bb.fetch2.Fetch(src_uri, d) > + fetcher.clean() > + except bb.fetch2.BBFetchException as e: > + bb.fatal(str(e)) > +} > diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass > index 69c8ad5..a45fbce 100644 > --- a/meta/classes/dpkg-base.bbclass > +++ b/meta/classes/dpkg-base.bbclass > @@ -31,8 +31,22 @@ do_build() { > sudo rmdir ${BUILDROOT} 2>/dev/null || true > } > > +CLEANFUNCS += "repo_clean" > + > +repo_clean() { > + PACKAGES=$(cd ${WORKDIR}; ls *.deb | sed 's/\([^_]*\).*/\1/') > + if [ -n "${PACKAGES}" ]; then > + reprepro -b ${DEPLOY_DIR_APT}/${DISTRO} \ > + --dbdir ${DEPLOY_DIR_DB}/${DISTRO} \ > + -C main \ > + remove ${DEBDISTRONAME} \ > + ${PACKAGES} > + fi > +} > + > # Install package to Isar-apt > do_deploy_deb() { > + repo_clean > reprepro -b ${DEPLOY_DIR_APT}/${DISTRO} \ > --dbdir ${DEPLOY_DIR_DB}/${DISTRO} \ > -C main \ >