From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6659727571892043776 X-Received: by 2002:aa7:c758:: with SMTP id c24mr4386292eds.2.1550764598415; Thu, 21 Feb 2019 07:56:38 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:906:406:: with SMTP id d6ls566698eja.7.gmail; Thu, 21 Feb 2019 07:56:38 -0800 (PST) X-Google-Smtp-Source: AHgI3IbTOD5S8Ze6cYxO/nwzrJSLnT1dGCi7+54LwqP7tLjHGLE+frM+bRUwax4TostYytzHru9K X-Received: by 2002:a17:906:d541:: with SMTP id gk1mr2505604ejb.0.1550764598013; Thu, 21 Feb 2019 07:56:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550764598; cv=none; d=google.com; s=arc-20160816; b=uNGEN0mNXqDm8eacolHgGZyKZynOTL5sdmLnQZ9YDgim4jU3awolE2MjQtu8eDiTrC JdqnI2jL6r9GuG3IJPL0MU3FtGMyh4AD1G5MAQvBBnz7l1tE26Qb/KY9n9XvKiMkhdwM zm3XPnPTsLy5hOsmE0gGni2Y32QvT4QU+ja/B7fOWbiUM1dKTxDR6bBt8fHIb7BWVMWo YZtMIKQ0C+9Zv273yhnpMhl9xvLQ+JuuJfmq5RTta6jxOxSK3tjZm2BdLKZKeOJhTTED vU7rNayKwxUXYgSIWO7w222DeeZduDpcAJ3sopbKdTrNJnG6P9P4VpcWnxktEEJhgx1X H2fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from; bh=vpYM/P9tYG5zYOHLjJNpbPMG7uZzi2INpC0sje6ZUvM=; b=q2cwRE15vTWPBRhv5k68toamSMLSO2UgI+4x7W0xMP7yJoKnKVLCVx/rs5lksdjPwg wXjYp5nnr7dLXGpkXKZWSgJhtoi2UDwF9SbEKmfcn29bkeV/bQIZv33VC0zEgOLX18BM nSvctT4Rr9C3aCEJI8Wa+jtM2dDm36PfUPyLTDn1/Xr2EOkH0MzjIC1jLXhtnBcoJ1Oi +MVneG8AVLi1u5QCFnyWyHW/xgqxEi2fBWN+r/6dqSw8zOWnOGskOGVDsROHW+nbkjvG J/CTWdFivAi6t3cm9JUG3uQAdcTq8imkGhot1DdeAcD4jgYDe6pF2zw1wPMfL8jnshFe zhIA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Return-Path: Received: from thoth.sbs.de (thoth.sbs.de. [192.35.17.2]) by gmr-mx.google.com with ESMTPS id a12si1124954edn.5.2019.02.21.07.56.37 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Feb 2019 07:56:37 -0800 (PST) Received-SPF: pass (google.com: domain of henning.schild@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 henning.schild@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Received: from mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id x1LFubim008864 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 21 Feb 2019 16:56:37 +0100 Received: from md1za8fc.ad001.siemens.net ([139.25.68.200]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTP id x1LFuZxK006369; Thu, 21 Feb 2019 16:56:35 +0100 From: Henning Schild To: isar-users Cc: Vladislav Jasek , Henning Schild Subject: [PATCHv3] dpkg-base: derive "Package" and "Architecture" from .deb in cleanup Date: Thu, 21 Feb 2019 16:56:34 +0100 Message-Id: <20190221155634.20706-1-henning.schild@siemens.com> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: qf7UkJqHShLw From: Henning Schild Instead of using "sed" pattern magic ask the .debs their name and architecture and remove exactly that. Especially the hardcoded Architecture caused problems for packages of architecture "all". If your recipe created such a package it could never be cleaned because it was added to all the archs of the repo, and later cleaned only from one. Now if that package changes because you are still working on the recipe, adding the package again would cause checksum mismatches for all but the current architecture. Remove the package from all archs when arch is "all". Reported-by: Vladislav Jasek Signed-off-by: Henning Schild --- meta/classes/dpkg-base.bbclass | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass index 742b8ad..8fb7805 100644 --- a/meta/classes/dpkg-base.bbclass +++ b/meta/classes/dpkg-base.bbclass @@ -98,13 +98,20 @@ do_build() { CLEANFUNCS += "repo_clean" repo_clean() { - PACKAGES=$(cd ${S}/..; ls *.deb | sed 's/\([^_]*\).*/\1/') - if [ -n "${PACKAGES}" ]; then - reprepro -b ${REPO_ISAR_DIR}/${DISTRO} \ - --dbdir ${REPO_ISAR_DB_DIR}/${DISTRO} \ - -C main -A ${DISTRO_ARCH} \ - remove ${DEBDISTRONAME} \ - ${PACKAGES} + DEBS=$( ls ${S}/../*.deb ) + if [ -n "${DEBS}" ]; then + for d in ${DEBS}; do + p=$( dpkg-deb --show --showformat '${Package}' ${d} ) + a=$( dpkg-deb --show --showformat '${Architecture}' ${d} ) + # removing "all" means no arch + aarg="-A ${a}" + [ "${a}" = "all" ] && aarg="" + reprepro -b ${REPO_ISAR_DIR}/${DISTRO} \ + --dbdir ${REPO_ISAR_DB_DIR}/${DISTRO} \ + -C main ${aarg} \ + remove ${DEBDISTRONAME} \ + ${p} + done fi } -- 2.19.2