From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7202866696458076160 X-Received: by 2002:a92:710a:0:b0:316:ed77:e325 with SMTP id m10-20020a92710a000000b00316ed77e325mr195622ilc.1.1677048090001; Tue, 21 Feb 2023 22:41:30 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6e02:f8f:b0:315:e39c:90ef with SMTP id v15-20020a056e020f8f00b00315e39c90efls2402918ilo.6.-pod-prod-gmail; Tue, 21 Feb 2023 22:41:29 -0800 (PST) X-Google-Smtp-Source: AK7set8yZgF17oFESXoyHOrS19mC5XoLETGxqmqn2odkQAp66tFk7WNWMhroE1ANsW9BpzzZjxa0 X-Received: by 2002:a92:a80e:0:b0:315:996e:e748 with SMTP id o14-20020a92a80e000000b00315996ee748mr5688272ilh.22.1677048089429; Tue, 21 Feb 2023 22:41:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677048089; cv=none; d=google.com; s=arc-20160816; b=lxKBeNIHMCTVh85IiMfuIXV+SdNnCBhK9R1S98SY4KUidYoRVz9tA8tEyp1/JtnrKf vBbDWi3SHJlQ4+v+XChl/jGZJPqA6nkHU4Aly5MNfJR3DfUMu5jWgI5D588oM0PyI1Nw hNHyBviF3ePoBO22EVr98mqmMHeHpOabRSTMVvgcqfHW3iHk+po+GNw2JraUFJz4xMSD FsPMJ9wBTKHm04GyVLMdoELDgKH2kmWkFJxFgv4J0tODJtPiimWZC6wvEC+/8hpfOspn lHHJVgW9Vmb1/oDwl/schrn+j7QB1iBvxqMc2QGKnpg6+YZXfKk1mmSSu1M2V9VkMWQW uViQ== 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=6X/qmudhq2Rtgv04Du8/sPE7hUTOWsBtNlJ/w6nuV/4=; b=KaiX2nBiyAeKX19wfXorOYzQ2Mj5OaR288ywnxKRq0T2Zn/+LtZYdbzGzo7F5WLKET kos4B0uzkANJLSZ+/Le1oQXKDNeOdb9b9fnyv6BWgiq6snjR5Gl6HsICvwT6Ws6wmHAH qFqy8pudm4jBpnldeI06f80dDRtpHBhhu7RgC+q01BRyhVks/n6DGpW04aDlIWkW3crB 7UTgL6j2SwC7VWtzYzIamXoAoAJrqzz9DpZTxI+XC3zrkMYntiuJPypgg30yWDFIbUuP ageUESlR1aoItsIggv2UM2LxWzF2FxKjlkNNngFvBNuDZBWOGCoil69DHYzYD37Borx6 Y5aA== 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 j26-20020a056e02219a00b00316d99c8a18si184009ila.5.2023.02.21.22.41.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Feb 2023 22:41:29 -0800 (PST) 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+deb9u1) with ESMTPSA id 31M6fPc6011872 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 22 Feb 2023 07:41:27 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v4 02/13] meta: Add debrepo bbclass handling base-apt prefetching Date: Wed, 22 Feb 2023 07:41:14 +0100 Message-Id: <20230222064125.22754-3-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20230222064125.22754-1-ubely@ilbers.de> References: <20230222064125.22754-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: 6H+TDpEleTCI This class uses 'scripts/debrepo' python script to prefetch given packages or sources to local base-apt repository. Signed-off-by: Uladzimir Bely --- meta/classes/debrepo.bbclass | 74 ++++++++++++++++++++++++++++++++++++ meta/conf/bitbake.conf | 5 +++ 2 files changed, 79 insertions(+) create mode 100644 meta/classes/debrepo.bbclass diff --git a/meta/classes/debrepo.bbclass b/meta/classes/debrepo.bbclass new file mode 100644 index 00000000..6376b3de --- /dev/null +++ b/meta/classes/debrepo.bbclass @@ -0,0 +1,74 @@ +DEBREPO_WORKDIR ?= "${DEBREPO_TARGET_DIR}" + +update_apt_source_list() { + chroot_dir=${1} + apt_list=${2} + + flock -x "${REPO_BASE_DIR}/repo.lock" -c " + sudo -E chroot ${chroot_dir} /usr/bin/apt-get update \ + -o Dir::Etc::SourceList=\"sources.list.d/${apt_list}.list\" \ + -o Dir::Etc::SourceParts=\"-\" \ + -o APT::Get::List-Cleanup=\"0\" + " +} + +debrepo_add_packages() { + if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then + return + fi + + args="" + if [ "${1}" = "--srcmode" ]; then + args="${args} --srcmode" + shift + fi + + workdir="${1}" + pkgs="${2}" + + if [ -n "${GNUPGHOME}" ]; then + export GNUPGHOME="${GNUPGHOME}" + fi + + flock -x "${workdir}/repo.lock" -c " + ${SCRIPTSDIR}/debrepo \ + ${args} \ + --workdir=\"${workdir}\" \ + ${pkgs} + " +} + +debrepo_handle_controlfile() { + if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then + return + fi + + control_file="${1}" + + args="" + pkgs="" + + build_arch=${DISTRO_ARCH} + if [ "${ISAR_CROSS_COMPILE}" = "1" ]; then + build_arch=${HOST_ARCH} + fi + if [ "${PACKAGE_ARCH}" != "${build_arch}" ]; then + args="--crossbuild" + pkgs="${pkgs} crossbuild-essential-${PACKAGE_ARCH}:${build_arch}" + pkgs="${pkgs} dose-distcheck:${build_arch}" + pkgs="${pkgs} libc-dev:${PACKAGE_ARCH}" + pkgs="${pkgs} libstdc++-dev:${PACKAGE_ARCH}" + fi + + if [ -n "${GNUPGHOME}" ]; then + export GNUPGHOME="${GNUPGHOME}" + fi + + flock -x "${DEBREPO_WORKDIR}/repo.lock" -c " + ${SCRIPTSDIR}/debrepo \ + --workdir=\"${DEBREPO_WORKDIR}\" \ + --controlfile=\"${control_file}\" \ + ${args} \ + ${pkgs} + " +} diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index c9f52a86..bea62bb2 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -67,6 +67,11 @@ KERNEL_FILE:mipsel ?= "vmlinux" KERNEL_FILE:riscv64 ?= "vmlinux" KERNEL_FILE:arm64 ?= "vmlinux" +# debrepo config +DEBREPO_DIR = "${TOPDIR}/debrepo" +DEBREPO_HOST_DIR = "${DEBREPO_DIR}/${HOST_DISTRO}-${HOST_ARCH}_${DISTRO}-${DISTRO_ARCH}" +DEBREPO_TARGET_DIR = "${DEBREPO_DIR}/${DISTRO}-${DISTRO_ARCH}" + OVERRIDES = "${DISTRO_ARCH}:${COMPAT_OVERRIDE}:${MACHINE}:${DISTRO}:${BASE_DISTRO_CODENAME}:forcevariable" FILESOVERRIDES = "${DISTRO_ARCH}:${MACHINE}" COMPAT_OVERRIDE = "${@'compat-arch' if d.getVar('ISAR_ENABLE_COMPAT_ARCH') == '1' else ''}" -- 2.20.1