From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6521574337769635840 X-Received: by 10.80.149.81 with SMTP id v17mr916301eda.10.1518552329503; Tue, 13 Feb 2018 12:05:29 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 10.80.170.50 with SMTP id o47ls8087947edc.3.gmail; Tue, 13 Feb 2018 12:05:28 -0800 (PST) X-Google-Smtp-Source: AH8x224rU4HzrIH+3BqGnlpsRnhF0pTQEeyBqJq1Vv6AGwNTMMT42bc9q9NqekxowAvYxIM4v5hN X-Received: by 10.80.134.135 with SMTP id r7mr900860eda.1.1518552328955; Tue, 13 Feb 2018 12:05:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518552328; cv=none; d=google.com; s=arc-20160816; b=AozX5PeP8Ak3ApyP3xhmHwWqmYzVbQPCOgQb1CKX62DLpayVSZzmicpvMuSOU8hpsG w2Hj/CZr6cNhn0ZDedg5NhNdoJHTQ3d1GxY/VZNRp35Nxu21RdxnHW8ziV23IZP5XuNg z6H0yeS9UN9Z2DgMPcuZn/m0qkmkqs3uNwhtpfkHRFHRC3NhaVldGNgrA42v0Whqg+KA KNKkTK4QB/i1D6E+dDqOABY8acQnmfrHgxrvkQMyAGv6sovq14UFoUgkszQlfpIwXWEA zJ1JY1EvRdbAxAyFxcxF9y9YzGL8orKS2FkqEuToOPTZ47E62iMCZaqvxbL8E3Jk+XuM hP3g== 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:to:from:arc-authentication-results; bh=MKlTsV3SLrSQRpgjxbOAIGMwUvXkqZulHVLo6wCiRww=; b=S6vB+f7pL0mdhcQXSBBm75cCV+T5MrbjXMq/WIKGmVQu90oyKxS0Ef3nWYzABzcFPW 94BjEXIH7eT34b4gx7+VOnZDXBoFANjdNI04ltGDU/yf0urkZ4r5SnURx2XleKlcR7PK mB5unrYluIXy16QVc7Db/s8FYHVcGQF0C7fVlxwIpSmJdOjr5XEGaloNPYUdBzkexrVv Co3qRfwSpokK3FdlwSfjZZogZ1rwBe9G3ofHqfe1vKyBj10LPc10a45fb+MUWUM3KFR1 e+QxLXdmXsCm/yfnZmBMYZE/SFGSnyE4GP41Lo57ScN8T/0s6afK0H7Ne0BD8p6FATd/ ZUQg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id m12si82896edi.1.2018.02.13.12.05.28 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Feb 2018 12:05:28 -0800 (PST) Received-SPF: pass (google.com: domain of jan.kiszka@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 jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Received: from mail2.siemens.de (mail2.siemens.de [139.25.208.11]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id w1DK5SEA005784 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 13 Feb 2018 21:05:28 +0100 Received: from md1f2u6c.ad001.siemens.net (md1q0hnc.ad001.siemens.net [139.25.68.37] (may be forged)) by mail2.siemens.de (8.15.2/8.15.2) with ESMTP id w1DK5Sug001776 for ; Tue, 13 Feb 2018 21:05:28 +0100 From: Jan Kiszka To: isar-users Subject: [PATCH v2 3/9] Add clean and cleanall tasks Date: Tue, 13 Feb 2018 21:05:21 +0100 Message-Id: <7078af24253ae6fb0758a0a4fb225de44da7cd1d.1518552327.git.jan.kiszka@siemens.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: References: In-Reply-To: References: X-TUID: 9f/f8C7tk/cY 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... 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 \ -- 2.13.6