From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6521574337769635840 X-Received: by 10.223.163.198 with SMTP id m6mr572354wrb.2.1518621286207; Wed, 14 Feb 2018 07:14:46 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 10.223.157.208 with SMTP id q16ls2220074wre.2.gmail; Wed, 14 Feb 2018 07:14:45 -0800 (PST) X-Google-Smtp-Source: AH8x225yDhATdqifjaAeX1DOcRrDFufmNxV5Bng2impx3imx2JhUQNEFLe8/4Xcwk5FJoahIYTH9 X-Received: by 10.223.186.201 with SMTP id w9mr573859wrg.14.1518621285559; Wed, 14 Feb 2018 07:14:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518621285; cv=none; d=google.com; s=arc-20160816; b=rflg/qTmJNfHokIXEHdRcLtQSjWMyRR3nFjBBM4hUGPxRTrCzi2eERjlX87NCjIiAJ LZ60wwygrHwkoXzRu2/X1t0CqG/9xAp8Jrlt6jsRSMaeSt6hg9j68LRFq3HgwaEKuZcW q8jLW/xygrEIGmFFKbpGAwwHhXOYNKSMUAVmWBhLZueKsUGaPVQjHLe1EpUQI1qBJWY/ 4v62xkWX29iv4r/5+vXjMKVzSGlJVDnEBcUXd+EKd9bneoWvFutGG031YO6eFjf/EwjG N4M0iWc5Fjxpsc+eOjJtJtqPqz+GBOpOSx4jl1HexVdMgqQOpOtyAmFonPYXRVUxY6PL m4sg== 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:references:to:from:subject :arc-authentication-results; bh=UO+iKQMUMidvRK/sR2tCBp7zn+bpO7+y21bOoMZ2SvU=; b=FLlk347v28ah/lDlA4+vaDoD9SHMcKfUJF8XgX7PXuOJcxvAKBmlFE7jgSEstUw8dw RB/qlq2WpqRdtfFhiLD7dkzxT/jIxMWTRCO2kDKeuqMyXwRnU/n/tfM8U2taXdfeAX3W eOzdmt3qbm8SgjAcqaGQS3i3T1NqDPg2+AzERNkeMwwFsiALFh7AjlQ/CpgtWoe7xksN LUlsAdNr88tjDL7zBw+L40HZdl4cGbLUBBZ2HgwRXFeva/TDjBNol1TcAoOqfzQxkQY0 ABorrM+wThACdH7aj8ItTMJORIkOKAoLLt6kJvU4TAnH5mECdkDj4jzsilehA4eMgzyU iR3A== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Return-Path: Received: from thoth.sbs.de (thoth.sbs.de. [192.35.17.2]) by gmr-mx.google.com with ESMTPS id t15si135600wmh.1.2018.02.14.07.14.45 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Feb 2018 07:14:45 -0800 (PST) Received-SPF: pass (google.com: domain of jan.kiszka@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 jan.kiszka@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Received: from mail3.siemens.de (mail3.siemens.de [139.25.208.14]) by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id w1EFEjuK005576 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 14 Feb 2018 16:14:45 +0100 Received: from [139.25.68.37] (md1q0hnc.ad001.siemens.net [139.25.68.37] (may be forged)) by mail3.siemens.de (8.15.2/8.15.2) with ESMTP id w1EFEiIl013597; Wed, 14 Feb 2018 16:14:44 +0100 Subject: [PATCH v3 3/9] Add clean and cleanall tasks From: Jan Kiszka To: isar-users , Alexander Smirnov References: <7078af24253ae6fb0758a0a4fb225de44da7cd1d.1518552327.git.jan.kiszka@siemens.com> Message-ID: <96c602df-3898-10ab-7084-3a223a28a4b7@siemens.com> Date: Wed, 14 Feb 2018 16:14:44 +0100 User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 MIME-Version: 1.0 In-Reply-To: <7078af24253ae6fb0758a0a4fb225de44da7cd1d.1518552327.git.jan.kiszka@siemens.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: FUw5j8daLvv6 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 --- Changes in v3: - restrict repo cleanup to DISTRO_ARCH Alex, could you check in CI if that fixes the issue you saw? I can look into making the parallel build work again by synchronizing dpkg accesses. 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..ce4b1e3 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 -A ${DISTRO_ARCH} \ + 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