From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7114179385042665472 X-Received: by 2002:a5d:5386:0:b0:21b:bc03:4ce9 with SMTP id d6-20020a5d5386000000b0021bbc034ce9mr16561280wrv.576.1656398975100; Mon, 27 Jun 2022 23:49:35 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:3b17:b0:3a0:2da0:3609 with SMTP id m23-20020a05600c3b1700b003a02da03609ls4423271wms.1.gmail; Mon, 27 Jun 2022 23:49:34 -0700 (PDT) X-Google-Smtp-Source: AGRyM1v7Z82k0fz0q40j41Z5FqwxOA704phblogwO1xY39lve1masZEugC1/3bJEO98EeGQNyLTK X-Received: by 2002:a05:600c:3d99:b0:39c:55ba:ecc3 with SMTP id bi25-20020a05600c3d9900b0039c55baecc3mr25009853wmb.42.1656398974271; Mon, 27 Jun 2022 23:49:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656398974; cv=none; d=google.com; s=arc-20160816; b=cbEmf0m3johVw/3j/VMpVld2WE6GmfUawxGBVNvLxHOm2vcYY2vNpIwRyxjh3wJCkq YDeWR4Ltn+aY1b76NZNGKojj/DgWFwOao0l076nWHc2UkfWqPvAxFpdz+G2+CJJx5Wkh w7+nz4n/5MAzjXbt1WOzL5YJ6uiaYQF77ZMMNSW8BopLBIq1UMRx4JG6viDaUD5iutpv Ts9IbbB4B9dqDBNnI6o0UsBoPOJDtjtAC6t2EltciCRZZnqiRWZ+69B+VNwzjqbZjFUJ Rim3CvcgFstzRJlRY2nhzYawNOO/NnrONLMEksrIHuqPNgjRKJkvmS3gO/fRfrOa/gYp y2Bw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from; bh=RyAjFz5JBIqQTbcH2a5pfQM0diSQRCHq93WXXosK45w=; b=0VXitz8MJFTlLaGBRsM7NQ8RgcxpkMHi0QPza/9K9qIdLuUsS3AhHJijrQfZ2oeYNg 3zS2HzI8PmsFiWl6Zh4upzqWycjlpcDHTTUkx0Azfv5PXrITHCKS9xYifeUbCClz1Y6u EpS2+Ux3q/NwQ0wQ62XRIasuCRvNU+R7+z2DEP3zSPWVCK+U9i2sRVNysn8cwO7D/Z7S 0yc47+2VxI6tKpMto/t8lr9qOTGOsAr9MbyoXaYlDpj3jhpWVQ+kg0sCvj75otlGbSL+ emzLXdMEoFuLrVRB9SV4MEy9q/dGmBxKiccmgFpTp+emA9utFiCn7tzZbu9+e90xmW32 51GA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id i17-20020a7bc951000000b0039c903985c6si705693wml.2.2022.06.27.23.49.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jun 2022 23:49:34 -0700 (PDT) Received-SPF: pass (google.com: domain of amikan@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 amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from localhost.localdomain (mm-172-27-214-37.mgts.dynamic.pppoe.byfly.by [37.214.27.172] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 25S6nMSD030758 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 28 Jun 2022 08:49:33 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [PATCH v12 09/21] sbuild: Add ccache support Date: Tue, 28 Jun 2022 09:49:01 +0300 Message-Id: <20220628064913.27938-10-amikan@ilbers.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220628064913.27938-1-amikan@ilbers.de> References: <20220628064913.27938-1-amikan@ilbers.de> 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: edW21//bRPq4 From: Uladzimir Bely 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 3c7b670..d92135c 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="${PP}/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 178ba1b..6ff41dd 100644 --- a/meta/classes/sbuild.bbclass +++ b/meta/classes/sbuild.bbclass @@ -105,3 +105,26 @@ remove_mounts() { done EOSUDO } + +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 177a8a6..74811e2 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.17.1