From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7075595997826514944 X-Received: by 2002:a2e:947:0:b0:249:3f14:4662 with SMTP id 68-20020a2e0947000000b002493f144662mr6572329ljj.478.1647415580310; Wed, 16 Mar 2022 00:26:20 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:80d5:0:b0:247:df0a:13df with SMTP id r21-20020a2e80d5000000b00247df0a13dfls204946ljg.9.gmail; Wed, 16 Mar 2022 00:26:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJynBrlcdYES36z6MmM+rTjlSE8Z+1Hd4qUf75d8NA0bjRQ8df6JylilIoADCLW4hkqiGPU9 X-Received: by 2002:a2e:a80a:0:b0:248:49f:b427 with SMTP id l10-20020a2ea80a000000b00248049fb427mr19687235ljq.301.1647415579385; Wed, 16 Mar 2022 00:26:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647415579; cv=none; d=google.com; s=arc-20160816; b=DRwzRBr+9NR46AHY5WxFUb89D6kL1bjTbw7ntjFCOTM+X4tSERg4Y4db0Vlf23b+Vv lRgGgDk0A7ER5MtPW9k8M4ey3ZCJQCTf9WFzak3q+nDO6JrKPhrDLVnitFD37pqBgIFR YzVj1Tj/je2psh3Ig9QkzClH2sG+xoddwZoKPIsF8Z8Na8obE1W/YSHFu1P70SXGjSpC /4MIF8ZgQzG7ZlWP2MEwrT8VeQrnEJzv9m4sW+GKHEqkRllBhzUVix0IZZtx3Hi5eljU 3C7kMsnQvE5Ys7yGqqooR2gUqAVL8Uzukea6FYoVvP+Gahi3P9sTvMccEL4PMJTIi56B Z8cg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from; bh=OzLLcrpVzIYSqhxfftUdhE90A+6B1kw6gvSpPqHmv3I=; b=EMIg9y+YYF/EtyhHa01CoYXeoTH52rzzsJ8R+lrR6qg2p5piwVbzuzGonuH/l9ptO+ YoMpPb0ziSTEmAqnVZGC93Xn1R0rOQShoql+F4gbTKWlKCwnZYVbR0ejIVktoW1PxRic WU2aOCNnCW64I0RfxYrNEzkCxpcDhZvNnni/vDDOK9gT5VNDCcPbla86DWVxmCzogwGW WAwsOM+u9Bf5OBOjioDiNGmsxJ13Li4Rjq7R/27XAdKx0zFtIZ1MbcWp9jVcLhG7nDr4 QmG9zlY7Tz+yAkWajFfKp5I+y1yc/YllflGfJZ702bGVjNdpIIxoNaQyzTA8/RDVvpQA f4cA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id p16-20020a2e9ad0000000b00247f6f7df5esi79232ljj.7.2022.03.16.00.26.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 16 Mar 2022 00:26:19 -0700 (PDT) Received-SPF: pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Received: from baighyz.m.ilbers.de (host-80-81-17-52.static.customer.m-online.net [80.81.17.52]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 22G7Q7dn021517 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 16 Mar 2022 08:26:18 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v8 09/15] sbuild: Add ccache support Date: Wed, 16 Mar 2022 08:26:01 +0100 Message-Id: <20220316072607.20518-10-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220316072607.20518-1-ubely@ilbers.de> References: <20220316072607.20518-1-ubely@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: LzO4Jh3Lw27x This adds ccache support for custom packages in the same manner as it was done previously for buildchroot-based build, by using USE_CCACHE variable in local.conf or per-recipe. Signed-off-by: Uladzimir Bely --- meta/classes/dpkg.bbclass | 4 ++++ meta/classes/sbuild.bbclass | 23 +++++++++++++++++++ .../sbuild-chroot/sbuild-chroot.inc | 1 + 3 files changed, 28 insertions(+) diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass index b3931850..2392d894 100644 --- a/meta/classes/dpkg.bbclass +++ b/meta/classes/dpkg.bbclass @@ -48,6 +48,10 @@ dpkg_runbuild() { deb_dir="/var/cache/apt/archives/" ext_deb_dir="/home/builder/${PN}/rootfs/${deb_dir}" + if [ ${USE_CCACHE} -eq 1 ]; then + schroot_configure_ccache + fi + profiles="${@ isar_deb_build_profiles(d)}" if [ ! -z "$profiles" ]; then profiles=$(echo --profiles="$profiles" | sed -e 's/ \+/,/g') diff --git a/meta/classes/sbuild.bbclass b/meta/classes/sbuild.bbclass index cfd0acd5..63820793 100644 --- a/meta/classes/sbuild.bbclass +++ b/meta/classes/sbuild.bbclass @@ -157,3 +157,26 @@ schroot_run() { remove_mounts schroot_delete_configs } + +schroot_configure_ccache() { + sudo -s <<'EOSUDO' + set -e + + sbuild_fstab="${SBUILD_CONF_DIR}/fstab" + + install --group=sbuild --mode=2775 -d ${CCACHE_DIR} + fstab_ccachedir="${CCACHE_DIR} /ccache none rw,bind 0 0" + grep -qxF "${fstab_ccachedir}" ${sbuild_fstab} || echo "${fstab_ccachedir}" >> ${sbuild_fstab} + + (flock 9 + [ -w ${CCACHE_DIR}/sbuild-setup ] || cat << END > ${CCACHE_DIR}/sbuild-setup +#!/bin/sh +export PATH="\$PATH_PREPEND:\$PATH" +exec "\$@" +END + chmod a+rx ${CCACHE_DIR}/sbuild-setup + ) 9>"${CCACHE_DIR}/sbuild-setup.lock" + + echo "command-prefix=/ccache/sbuild-setup" >> "${SCHROOT_CONF_FILE}" +EOSUDO +} diff --git a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc index 177a8a6d..74811e22 100644 --- a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc +++ b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc @@ -14,6 +14,7 @@ SBUILD_CHROOT_PREINSTALL_COMMON = " \ fakeroot \ build-essential \ debhelper \ + ccache \ " SBUILD_CHROOT_PREINSTALL ?= " \ -- 2.20.1