From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6771003123014041600 X-Received: by 2002:adf:82e7:: with SMTP id 94mr31936193wrc.60.1580226206726; Tue, 28 Jan 2020 07:43:26 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a7b:cf15:: with SMTP id l21ls2727025wmg.0.canary-gmail; Tue, 28 Jan 2020 07:43:26 -0800 (PST) X-Google-Smtp-Source: APXvYqy4OL91r4EyASPt6BCvWIOqBAsuKTWvdrdw4jtYR5QrMwrYhoxoFBT3Ln4N9Y55KR9S9bsA X-Received: by 2002:a7b:cf12:: with SMTP id l18mr6003377wmg.66.1580226206141; Tue, 28 Jan 2020 07:43:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580226206; cv=none; d=google.com; s=arc-20160816; b=txn0558+J0IN0hLOoS9bfX4oxs0yL3RFdF3pAdY9QhSBVsTnWS3Ire+Hfpw4djVtf2 rsU+XJWZ3cNooqsn3TVMspjwcKTZX6YJ/Oujf8VayPiEJgauHKgg4kojY2IyNng27Do5 tDczVh7wDVYVgLWA4TKqyD6ND/N1QsqWVBpZxdWnKme3w6qnfcLlvvIdpUdZ9CBoXV1q jmIH2Xfx2MMyiKwd6pggjKAWe1DqEornjqkxYo3xrR0Jk2OBHXvQ/5iWrzRByBiRh/k2 VBVnW8Nfdt7FqrvlnslTg40coKTLBnUii2jIrZeCbepThlPx5RO4POoJkjQVJ8yECmfo Za7Q== 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 :dkim-signature; bh=ZmeRKXZJQXi1s0aAhme9JA1Iq6SqHqz7Mski/8OM/QQ=; b=Hs4XNlQZv4t1bs23b/JEkjrCAWHZM+o4smRKXopjxIeYKn9skMavYomUYHNREzFc4Q xMpDtU8G2b27Z4XT3+uDb54PYq3hn+CUFJ3eoCt3dsLeYrm5gzhd9rVu1OeM1wLZ4aT7 Nz6e6T/IgKGobquWM+vaXzn1CEwWiJ9FtT2+vvG2GEeGLC3duz77uMpMyV/iHID4HW0D j2LitQim0/qd1XW1O5eI3SZx4qbAZNUgAjCQMEKuewGahfQFzfbNdWgS3ukD32cRnuPb xrIQLcxHZnSOZM/ys/7AqWOs0HO0naqW3DJ1k6V/HdzTvoahi32JuW7reOSTWCWVPdFW OOTQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=i1568OBM; spf=pass (google.com: domain of vijaikumar.kanagarajan@gmail.com designates 2a00:1450:4864:20::444 as permitted sender) smtp.mailfrom=vijaikumar.kanagarajan@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com. [2a00:1450:4864:20::444]) by gmr-mx.google.com with ESMTPS id m2si146306wmi.3.2020.01.28.07.43.26 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jan 2020 07:43:26 -0800 (PST) Received-SPF: pass (google.com: domain of vijaikumar.kanagarajan@gmail.com designates 2a00:1450:4864:20::444 as permitted sender) client-ip=2a00:1450:4864:20::444; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=i1568OBM; spf=pass (google.com: domain of vijaikumar.kanagarajan@gmail.com designates 2a00:1450:4864:20::444 as permitted sender) smtp.mailfrom=vijaikumar.kanagarajan@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: by mail-wr1-x444.google.com with SMTP id c9so16553147wrw.8 for ; Tue, 28 Jan 2020 07:43:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ZmeRKXZJQXi1s0aAhme9JA1Iq6SqHqz7Mski/8OM/QQ=; b=i1568OBMbcpmaowz0rFIt1cwDzbcwFE/Ep0DABkJZ/pgullZ/HU3HPo4A2AQCEOP70 ing597WasBKyXpDzUQhEdk/QYaDj/HUTjJjREOtejVzNscMJRgTqEdcFNkHBNFBQMJQ3 NUIDCDADSyqrDnPucmd4cS+c8AhhG+sv8dYJPkTirtaAI42gkt+hAOR4e7lNZHPfZDow htbFEstXaQZfjMNv7UIZZDkgrY5oMkbPNlbJMv1HEEZ16j/JexEeOW+oidR2yaMnJ6IG DN6MO0DE/BgkEr60RCBeN0ujHdFuXtdU2kFfMuG9bWBHn3vS3I58OR0b7DqqIt75oUuj GCuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ZmeRKXZJQXi1s0aAhme9JA1Iq6SqHqz7Mski/8OM/QQ=; b=TXWzCFMDSB8FqxS3AQyYyQfSO9yBZjfVQ7bUrOlikEyYPoM4po+s/C9wQHe0W5NzLc 5WuU58UP961SWPDKQ42sRC1ASo0zwuPXIQirQlsQbTwNL9hT8VfYzA+rrno6fw3hffHq 5eR4hfDCNAijwtvdldCisIIeyBsatm0h7Pfd+p5IruNRKyc7DJzU4/fTtGwYObi0QAkr bftM/1xgB7TBz5/rj9Tiz/KSdS0HM0Yc3irYbF8noMJmIT+Rntk+NCfD+gZIrvZ5STcP +/PBBKEfwGYGWDsJmuDyX1xzq6at1nK4Sdz4LtXwynMA44yzPcfr41Wz7TgWkjSsNWNp hITA== X-Gm-Message-State: APjAAAWwlKEwJyvanZEuzO8JglrbKuI9xNtOrP2wXtQkmzNpjI9ivE8j 17CDvoSH/enZU52kLkU+1SN/FBXACFY= X-Received: by 2002:adf:f604:: with SMTP id t4mr27301858wrp.33.1580226205553; Tue, 28 Jan 2020 07:43:25 -0800 (PST) Return-Path: Received: from oxygen.mgc.mentorg.com (nat-sch.mentorg.com. [139.181.36.34]) by smtp.gmail.com with ESMTPSA id u8sm3601200wmm.15.2020.01.28.07.43.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2020 07:43:25 -0800 (PST) From: Vijai Kumar K To: isar-users@googlegroups.com Cc: Henning Schild Subject: [PATCH v3 20/26] meta: repository: implement repo_contains_package and use it in base_apt Date: Tue, 28 Jan 2020 21:12:07 +0530 Message-Id: <20200128154213.22353-21-vijaikumar.kanagarajan@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200128154213.22353-1-vijaikumar.kanagarajan@gmail.com> References: <20200128154312.337e61f6@md1za8fc.ad001.siemens.net> <20200128154213.22353-1-vijaikumar.kanagarajan@gmail.com> X-TUID: gL2rdUc64CnY From: Henning Schild Make the lookup and the checksum comparison one function of a repository. That cleans things up and allows for easier reuse. Signed-off-by: Henning Schild --- meta/classes/image-cache-extension.bbclass | 31 ++++++---------------- meta/classes/repository.bbclass | 19 +++++++++++++ 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/meta/classes/image-cache-extension.bbclass b/meta/classes/image-cache-extension.bbclass index c3ee7b8..4123326 100644 --- a/meta/classes/image-cache-extension.bbclass +++ b/meta/classes/image-cache-extension.bbclass @@ -7,16 +7,6 @@ inherit repository -compare_pkg_md5sums() { - pkg1=$1 - pkg2=$2 - - md1=$(md5sum $pkg1 | cut -d ' ' -f 1) - md2=$(md5sum $pkg2 | cut -d ' ' -f 1) - - [ "$md1" = "$md2" ] -} - populate_base_apt() { find "${DEBDIR}"/"${DISTRO}" -name '*\.deb' | while read package; do # NOTE: due to packages stored by reprepro are not modified, we can @@ -25,21 +15,16 @@ populate_base_apt() { # same and should not be overwritten. This method is easier and more # robust than querying reprepro by name. - # Check if this package is taken from Isar-apt, if so - ignore it. - base_name=${package##*/} - isar_apt_p=$(find ${REPO_ISAR_DIR}/${DISTRO} -name $base_name) - if [ -n "$isar_apt_p" ]; then - # Check if MD5 sums are identical. This helps to avoid the case - # when packages is overridden from another repo. - compare_pkg_md5sums "$package" "$isar_apt_p" && continue - fi + # Check if this package is taken from Isar-apt, if so - ingore it. + repo_contains_package "${REPO_ISAR_DIR}/${DISTRO}" "${package}" && \ + continue # Check if this package is already in base-apt - base_apt_p=$(find ${REPO_BASE_DIR}/${BASE_DISTRO} -name $base_name) - if [ -n "$base_apt_p" ]; then - compare_pkg_md5sums "$package" "$base_apt_p" && continue - - # md5sum differs, so remove the package from base-apt + ret=0 + repo_contains_package "${REPO_BASE_DIR}/${BASE_DISTRO}" "${package}" || + ret=$? + [ "${ret}" = "0" ] && continue + if [ "${ret}" = "1" ]; then repo_del_package "${REPO_BASE_DIR}"/"${BASE_DISTRO}" \ "${REPO_BASE_DB_DIR}"/"${BASE_DISTRO}" \ "${BASE_DISTRO_CODENAME}" \ diff --git a/meta/classes/repository.bbclass b/meta/classes/repository.bbclass index dc4c1dc..e7acf59 100644 --- a/meta/classes/repository.bbclass +++ b/meta/classes/repository.bbclass @@ -81,3 +81,22 @@ repo_del_package() { remove "${codename}" \ "${p}" } + +repo_contains_package() { + local dir="$1" + local file="$2" + local package + + package=$(find ${dir} -name ${file##*/}) + if [ -n "$package" ]; then + local md1=$(md5sum "$package" | cut -d ' ' -f 1) + local md2=$(sudo md5sum "$file" | cut -d ' ' -f 1) + + # yes + [ "${md1}" = "${md2}" ] && return 0 + # yes but not the exact same file + return 1 + fi + # no + return 2 +} -- 2.17.1