From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6995134577528274944 X-Received: by 2002:a17:907:2b09:: with SMTP id gc9mr3262159ejc.49.1628681686465; Wed, 11 Aug 2021 04:34:46 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:aa7:c98b:: with SMTP id c11ls2324696edt.1.gmail; Wed, 11 Aug 2021 04:34:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx8xpZ98LfJYlQt7qtMeSFMwXBbOBWBPCs63qX2Cr8SN4oMPlQK7WT2ry0wN21ZwEuZfzSh X-Received: by 2002:a05:6402:10cc:: with SMTP id p12mr10910937edu.328.1628681685438; Wed, 11 Aug 2021 04:34:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628681685; cv=none; d=google.com; s=arc-20160816; b=cy3a/UGTbv9tPBQRvTrN1IaaNqAFuM9NOnc/MU/9L5F1vLa6qNawy+tAa818hLgFCk H8X49+y3Uh3iSpXhQ00hsVVOvw32YhZbwEpiSju5ihlPg+T1MMFnDuHHL5igicu7YAVx 0f8fXKv5PWi98zVDkdr6vxnzIha/vKTxeE4KY+w2Cl7kuR7kZu3GZMXk85rpnemLSHrV sky0H93M4HuQCHIklBQhR+ub1oJms7zD3d7q2Gzn+pO0rxJe8rSa+ZYZ/2iZV5CNVAxl L9B771sqxSucEtxX+hyCJbS1gLPOJPKf+6Iy2if9qLdtatZRAHX/tEBHSJoSOclY1qdP 8MGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:mime-version:user-agent :date:message-id:to:subject:from; bh=MwbrxHQlzEc7wv71U1D3/cX/By1j2DA/9Ln9bIZnbfA=; b=HT77bunPnqcEl0tyt02Od+V7pIZVQV8TueoSGd5oXPUPMK23WopG3/ipGCwAz8m69L 5JDhDMj9MTQBKX5qUkRk4mFr01lL6NBdNyVWFLCBETR5LB0fge0mwI+X44+CEXero6e5 HD++edkwJWKYP1fWdLgo113/iWMFGODK2H4VgAwQojYeryUBbhvNQyICCH+DMTBlTL8f 0JVghqsLKRksSzCOkUvIuDbNWiHHt7fBCHoD31ovQ553ndgJbgfNOapDWH0I9m/bYCyb TpH6WBsn6IMSmelIDKUW+uhfIiRVroUSL5bWMGkq8d82zYaDWlkbPJXAAyoW4kt5vBhD eszg== 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from thoth.sbs.de (thoth.sbs.de. [192.35.17.2]) by gmr-mx.google.com with ESMTPS id w12si1642561edj.5.2021.08.11.04.34.45 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 Aug 2021 04:34:45 -0700 (PDT) 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id 17BBYjMb000437 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 11 Aug 2021 13:34:45 +0200 Received: from [167.87.241.87] ([167.87.241.87]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 17BBYiso026428 for ; Wed, 11 Aug 2021 13:34:44 +0200 From: Jan Kiszka Subject: [PATCH] isar-bootstrap: Remove obsolete and incorrect skipping of rebuild To: isar-users Message-ID: Date: Wed, 11 Aug 2021 13:34:44 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: GWGRljxXOS04 From: Jan Kiszka This check dates back to the time isar-bootstrap could have run multiple times for the same distro-arch and was lock-protected to avoid this. Long history, locks were removed in 1cae951259b3. Now this check only prevented proper rebuilding when apt sources or preferences changed. Signed-off-by: Jan Kiszka --- .../isar-bootstrap/isar-bootstrap.inc | 202 +++++++++--------- 1 file changed, 100 insertions(+), 102 deletions(-) diff --git a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc index 0edefc5..b858c8c 100644 --- a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc +++ b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc @@ -256,125 +256,123 @@ isar_bootstrap() { fi E="${@ isar_export_proxies(d)}" export IS_HOST debootstrap_args E - if [ ! -e "${DEPLOY_ISAR_BOOTSTRAP}" ]; then - sudo rm -rf --one-file-system "${ROOTFSDIR}" - if [ "${IS_HOST}" ];then - deb_dl_dir_import "${ROOTFSDIR}" "${HOST_DISTRO}" + + sudo rm -rf --one-file-system "${ROOTFSDIR}" + if [ "${IS_HOST}" ];then + deb_dl_dir_import "${ROOTFSDIR}" "${HOST_DISTRO}" + else + deb_dl_dir_import "${ROOTFSDIR}" "${DISTRO}" + fi + + sudo -E -s <<'EOSUDO' + set -e + if [ ${IS_HOST} ]; then + ${DEBOOTSTRAP} $debootstrap_args \ + ${@get_distro_components_argument(d, True)} \ + "${@get_distro_suite(d, True)}" \ + "${ROOTFSDIR}" \ + "${@get_distro_source(d, True)}" \ + ${DISTRO_DEBOOTSTRAP_SCRIPT} else - deb_dl_dir_import "${ROOTFSDIR}" "${DISTRO}" + ${DEBOOTSTRAP} $debootstrap_args \ + --arch="${DISTRO_ARCH}" \ + ${@get_distro_components_argument(d, False)} \ + "${@get_distro_suite(d, False)}" \ + "${ROOTFSDIR}" \ + "${@get_distro_source(d, False)}" \ + ${DISTRO_DEBOOTSTRAP_SCRIPT} fi - sudo -E -s <<'EOSUDO' - set -e - if [ ${IS_HOST} ]; then - ${DEBOOTSTRAP} $debootstrap_args \ - ${@get_distro_components_argument(d, True)} \ - "${@get_distro_suite(d, True)}" \ - "${ROOTFSDIR}" \ - "${@get_distro_source(d, True)}" \ - ${DISTRO_DEBOOTSTRAP_SCRIPT} - else - ${DEBOOTSTRAP} $debootstrap_args \ - --arch="${DISTRO_ARCH}" \ - ${@get_distro_components_argument(d, False)} \ - "${@get_distro_suite(d, False)}" \ - "${ROOTFSDIR}" \ - "${@get_distro_source(d, False)}" \ - ${DISTRO_DEBOOTSTRAP_SCRIPT} + # Install apt config + mkdir -p "${ROOTFSDIR}/etc/apt/preferences.d" + install -v -m644 "${APTPREFS}" \ + "${ROOTFSDIR}/etc/apt/preferences.d/bootstrap" + mkdir -p "${ROOTFSDIR}/etc/apt/sources.list.d" + if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then + line="file:///base-apt/${BASE_DISTRO} ${BASE_DISTRO_CODENAME} main" + if [ -z "${BASE_REPO_KEY}" ]; then + line="[trusted=yes] ${line}" fi + echo "deb ${line}" > "${ROOTFSDIR}/etc/apt/sources.list.d/base-apt.list" + echo "deb-src ${line}" >> "${ROOTFSDIR}/etc/apt/sources.list.d/base-apt.list" - # Install apt config - mkdir -p "${ROOTFSDIR}/etc/apt/preferences.d" - install -v -m644 "${APTPREFS}" \ - "${ROOTFSDIR}/etc/apt/preferences.d/bootstrap" - mkdir -p "${ROOTFSDIR}/etc/apt/sources.list.d" - if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then - line="file:///base-apt/${BASE_DISTRO} ${BASE_DISTRO_CODENAME} main" - if [ -z "${BASE_REPO_KEY}" ]; then - line="[trusted=yes] ${line}" - fi - echo "deb ${line}" > "${ROOTFSDIR}/etc/apt/sources.list.d/base-apt.list" - echo "deb-src ${line}" >> "${ROOTFSDIR}/etc/apt/sources.list.d/base-apt.list" - - mkdir -p ${ROOTFSDIR}/base-apt - mount --bind ${REPO_BASE_DIR} ${ROOTFSDIR}/base-apt - else - install -v -m644 "${APTSRCS}" \ - "${ROOTFSDIR}/etc/apt/sources.list.d/bootstrap.list" - fi - install -v -m644 "${APTSRCS_INIT}" \ - "${ROOTFSDIR}/etc/apt/sources-list" - rm -f "${ROOTFSDIR}/etc/apt/sources.list" - rm -rf "${ROOTFSDIR}/var/lib/apt/lists/"* - mkdir -p "${ROOTFSDIR}/etc/apt/apt.conf.d" - install -v -m644 "${WORKDIR}/isar-apt.conf" \ - "${ROOTFSDIR}/etc/apt/apt.conf.d/50isar.conf" - if [ "${@get_distro_needs_gpg_support(d)}" = "gnupg" ]; then - MY_GPGHOME="$(chroot "${ROOTFSDIR}" mktemp -d /tmp/gpghomeXXXXXXXXXX)" - echo "Created temporary directory ${MY_GPGHOME} for gpg-agent" - export GNUPGHOME="${MY_GPGHOME}" - chroot "${ROOTFSDIR}" gpg-agent --daemon - APT_KEY_APPEND="--homedir ${MY_GPGHOME}" - fi - find ${APT_KEYS_DIR}/ -type f | while read keyfile - do - kfn="$(basename $keyfile)" - cp $keyfile "${ROOTFSDIR}/tmp/$kfn" - chroot "${ROOTFSDIR}" /usr/bin/apt-key \ - --keyring ${THIRD_PARTY_APT_KEYRING} ${APT_KEY_APPEND} add "/tmp/$kfn" - rm "${ROOTFSDIR}/tmp/$kfn" - done - if [ -d "${MY_GPGHOME}" ]; then - echo "Killing gpg-agent for ${MY_GPGHOME}" - chroot "${ROOTFSDIR}" gpgconf --kill gpg-agent && /bin/rm -rf "${MY_GPGHOME}" - fi + mkdir -p ${ROOTFSDIR}/base-apt + mount --bind ${REPO_BASE_DIR} ${ROOTFSDIR}/base-apt + else + install -v -m644 "${APTSRCS}" \ + "${ROOTFSDIR}/etc/apt/sources.list.d/bootstrap.list" + fi + install -v -m644 "${APTSRCS_INIT}" "${ROOTFSDIR}/etc/apt/sources-list" + rm -f "${ROOTFSDIR}/etc/apt/sources.list" + rm -rf "${ROOTFSDIR}/var/lib/apt/lists/"* + mkdir -p "${ROOTFSDIR}/etc/apt/apt.conf.d" + install -v -m644 "${WORKDIR}/isar-apt.conf" \ + "${ROOTFSDIR}/etc/apt/apt.conf.d/50isar.conf" + if [ "${@get_distro_needs_gpg_support(d)}" = "gnupg" ]; then + MY_GPGHOME="$(chroot "${ROOTFSDIR}" mktemp -d /tmp/gpghomeXXXXXXXXXX)" + echo "Created temporary directory ${MY_GPGHOME} for gpg-agent" + export GNUPGHOME="${MY_GPGHOME}" + chroot "${ROOTFSDIR}" gpg-agent --daemon + APT_KEY_APPEND="--homedir ${MY_GPGHOME}" + fi + find ${APT_KEYS_DIR}/ -type f | while read keyfile + do + kfn="$(basename $keyfile)" + cp $keyfile "${ROOTFSDIR}/tmp/$kfn" + chroot "${ROOTFSDIR}" /usr/bin/apt-key \ + --keyring ${THIRD_PARTY_APT_KEYRING} ${APT_KEY_APPEND} add "/tmp/$kfn" + rm "${ROOTFSDIR}/tmp/$kfn" + done + if [ -d "${MY_GPGHOME}" ]; then + echo "Killing gpg-agent for ${MY_GPGHOME}" + chroot "${ROOTFSDIR}" gpgconf --kill gpg-agent && /bin/rm -rf "${MY_GPGHOME}" + fi - if [ "${@get_distro_suite(d, True)}" = "stretch" ] && [ "${@get_host_release().split('.')[0]}" -lt "4" ]; then - install -v -m644 "${WORKDIR}/isar-apt-fallback.conf" \ - "${ROOTFSDIR}/etc/apt/apt.conf.d/55isar-fallback.conf" - fi + if [ "${@get_distro_suite(d, True)}" = "stretch" ] && [ "${@get_host_release().split('.')[0]}" -lt "4" ]; then + install -v -m644 "${WORKDIR}/isar-apt-fallback.conf" \ + "${ROOTFSDIR}/etc/apt/apt.conf.d/55isar-fallback.conf" + fi - # Set locale - install -v -m644 "${WORKDIR}/locale" "${ROOTFSDIR}/etc/locale" + # Set locale + install -v -m644 "${WORKDIR}/locale" "${ROOTFSDIR}/etc/locale" - sed -i '/en_US.UTF-8 UTF-8/s/^#//g' "${ROOTFSDIR}/etc/locale.gen" - chroot "${ROOTFSDIR}" /usr/sbin/locale-gen + sed -i '/en_US.UTF-8 UTF-8/s/^#//g' "${ROOTFSDIR}/etc/locale.gen" + chroot "${ROOTFSDIR}" /usr/sbin/locale-gen - # setup chroot - install -v -m755 "${WORKDIR}/chroot-setup.sh" "${ROOTFSDIR}/chroot-setup.sh" - "${ROOTFSDIR}/chroot-setup.sh" "setup" "${ROOTFSDIR}" + # setup chroot + install -v -m755 "${WORKDIR}/chroot-setup.sh" "${ROOTFSDIR}/chroot-setup.sh" + "${ROOTFSDIR}/chroot-setup.sh" "setup" "${ROOTFSDIR}" - # update APT - mount --rbind /dev ${ROOTFSDIR}/dev - mount --make-rslave ${ROOTFSDIR}/dev - mount -t proc none ${ROOTFSDIR}/proc - mount --rbind /sys ${ROOTFSDIR}/sys - mount --make-rslave ${ROOTFSDIR}/sys + # update APT + mount --rbind /dev ${ROOTFSDIR}/dev + mount --make-rslave ${ROOTFSDIR}/dev + mount -t proc none ${ROOTFSDIR}/proc + mount --rbind /sys ${ROOTFSDIR}/sys + mount --make-rslave ${ROOTFSDIR}/sys - export DEBIAN_FRONTEND=noninteractive + export DEBIAN_FRONTEND=noninteractive - if [ ${IS_HOST} ]; then - chroot "${ROOTFSDIR}" /usr/bin/dpkg --add-architecture ${DISTRO_ARCH} - fi + if [ ${IS_HOST} ]; then + chroot "${ROOTFSDIR}" /usr/bin/dpkg --add-architecture ${DISTRO_ARCH} + fi - if [ "${ISAR_ENABLE_COMPAT_ARCH}" = "1" ]; then - chroot "${ROOTFSDIR}" /usr/bin/dpkg --add-architecture ${COMPAT_DISTRO_ARCH} - fi + if [ "${ISAR_ENABLE_COMPAT_ARCH}" = "1" ]; then + chroot "${ROOTFSDIR}" /usr/bin/dpkg --add-architecture ${COMPAT_DISTRO_ARCH} + fi - chroot "${ROOTFSDIR}" /usr/bin/apt-get update -y - chroot "${ROOTFSDIR}" /usr/bin/apt-get install -y -f - chroot "${ROOTFSDIR}" /usr/bin/apt-get dist-upgrade -y \ - -o Debug::pkgProblemResolver=yes + chroot "${ROOTFSDIR}" /usr/bin/apt-get update -y + chroot "${ROOTFSDIR}" /usr/bin/apt-get install -y -f + chroot "${ROOTFSDIR}" /usr/bin/apt-get dist-upgrade -y \ + -o Debug::pkgProblemResolver=yes - umount -l "${ROOTFSDIR}/dev" - umount -l "${ROOTFSDIR}/proc" - umount -l "${ROOTFSDIR}/sys" - umount -l "${ROOTFSDIR}/base-apt" || true + umount -l "${ROOTFSDIR}/dev" + umount -l "${ROOTFSDIR}/proc" + umount -l "${ROOTFSDIR}/sys" + umount -l "${ROOTFSDIR}/base-apt" || true - # Finalize debootstrap by setting the link in deploy - ln -Tfsr "${ROOTFSDIR}" "${DEPLOY_ISAR_BOOTSTRAP}" + # Finalize debootstrap by setting the link in deploy + ln -Tfsr "${ROOTFSDIR}" "${DEPLOY_ISAR_BOOTSTRAP}" EOSUDO - fi if [ "${IS_HOST}" ];then deb_dl_dir_export "${ROOTFSDIR}" "${HOST_DISTRO}" else -- 2.31.1