From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6458972999552860160 X-Received: by 10.28.186.133 with SMTP id k127mr85371wmf.7.1503991249206; Tue, 29 Aug 2017 00:20:49 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.28.87.198 with SMTP id l189ls149222wmb.18.gmail; Tue, 29 Aug 2017 00:20:48 -0700 (PDT) X-Google-Smtp-Source: ADKCNb6jeutZDg4L0szC69rwoBUlbHTs9yKFZ25WM01X1p2om6DFbxvaqeHPYr5XfPkhzD2p7r4K X-Received: by 10.28.135.68 with SMTP id j65mr235870wmd.9.1503991248839; Tue, 29 Aug 2017 00:20:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1503991248; cv=none; d=google.com; s=arc-20160816; b=Fyl9Sd0YttUkHNudp8l2oAfJQcpw3gTPYny2XgOTd8z3DucjioyAEAhYqYUChHj973 uvS3O7hizKBNJZJ+o9J2Beh492H1tVL+PdMhVjzUMZTpfKW/is0ZqoA8BofRJaPfZHoP VwIpzvwseA6LRlKBbufr48YvaGVgLRYkl1gi56ifFuQvdWO+veHuGV2ctW2gCSWE7vdI Rk21XoG9ofNI4Udfa/qOHFg6lKcbUQ19GZlvFa+33KFnSu9lvdRabwisbKNcoiJX0tHJ /7mW2uu+8FjZfoDtO/jFX/XWaOs05fqniCH0Rj1jv8PJbWWIK3/3cm1OGWIyQvNlRpYP f9Dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:references:cc:to:subject :arc-authentication-results; bh=a0op3wq4dlhiGxR8DLO1ungNTF8Rl3gpZYKBCiIICXY=; b=WOL9RuWYBtBxNpVGVYZ4Jia/By6Bwyb5yIlH9i+pbQkd8UnFS5ZEQ1GyL9K4kRPkfW sADF2islKhXK1BNue7KLAaukiCp905VE9kGzWcwElp8gqpYspidkvr5yarY99ETWRlMQ RlLt2UTiVfb6wr8/C+83UbP61ggYkL4PiPPqH5gUWoWrlc/UkXRsQakWtkwfoxPzy2hL KuCTdqnn4QLWk2Ookg9ReM2pcSHYoW+qNlTOIMdbmdLkGAQtjKXCBGz85/tQbzem0KYa RYrgfhyN8KAfQkdj4fY97u7v2q6Ng4LzFoR3fnyRBUwKTGrj1QMg/Amo6giNa5eoj4A8 c1FA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Return-Path: Received: from aqmola.ilbers.de (aqmola.ilbers.de. [85.214.62.211]) by gmr-mx.google.com with ESMTPS id m198si95815wma.2.2017.08.29.00.20.48 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 Aug 2017 00:20:48 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) client-ip=85.214.62.211; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Received: from [10.0.2.15] ([188.227.110.165]) (authenticated bits=0) by aqmola.ilbers.de (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id v7T7Kket013253 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 29 Aug 2017 09:20:47 +0200 Subject: Re: [PATCH 5/6] classes/dpkg: Properly update packages in the cache To: Henning Schild Cc: isar-users@googlegroups.com References: <20170827151339.12806-1-asmirnov@ilbers.de> <20170827151339.12806-6-asmirnov@ilbers.de> <20170828173233.010d4b0b@md1em3qc> From: Alexander Smirnov Message-ID: <218c4e50-fd72-ba3f-fedb-110802137574@ilbers.de> Date: Tue, 29 Aug 2017 10:20:41 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <20170828173233.010d4b0b@md1em3qc> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: TersxrA3PTxy > This is another fixup of 1/6, fold it in. > It's a good question if we want to keep development history. Because these patches reflect the real history of binary caching development. > > Am Sun, 27 Aug 2017 18:13:38 +0300 > schrieb Alexander Smirnov : > >> From: Frank Lenormand >> >> Before installing to cache, existing packages with the same name and >> version have to be removed. >> >> Signed-off-by: Frank Lenormand >> Signed-off-by: Alexander Smirnov >> --- >> meta/classes/dpkg.bbclass | 46 >> +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 >> insertions(+), 3 deletions(-) >> >> diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass >> index 118ba2f..72ae79f 100644 >> --- a/meta/classes/dpkg.bbclass >> +++ b/meta/classes/dpkg.bbclass >> @@ -84,12 +84,52 @@ do_install_to_cache() { >> > "${DIR_CACHE}/conf/distributions" >> fi >> >> + print_field_value() { >> + awk "\$1 == \"${1}:\" { print \$2; }" >> + } >> + >> + call_reprepro() { >> + reprepro --waitforlock 3 -b "${DIR_CACHE}" --dbdir >> "${DIR_DB}" \ >> + -C main "$@" >> + } >> + >> # Add binary and source packages to the deb cache >> # If the cache doesn't exist yet, it will be created using the >> # `distributions` file generated above. >> - ls -1 "${BUILDROOT}"/*.deb "${BUILDROOT}"/*.dsc | while read -r >> p; do >> - reprepro --waitforlock 3 -b "${DIR_CACHE}" --dbdir >> "${DIR_DB}" \ >> - -C main "include${p##*.}" "${DEBDISTRONAME}" "${p}" >> + ls -1 "${BUILDROOT}"/*.deb | while read -r p; do >> + name_package=$(dpkg -f "${p}" | print_field_value "Package") >> + version_package=$(dpkg -f "${p}" | print_field_value >> "Version") + >> + # Remove all packages with the same version that were added >> to the >> + # repository in previous builds >> + call_reprepro \ >> + -A "${DISTRO_ARCH}" \ >> + removefilter "${DEBDISTRONAME}" \ >> + "Package (== ${name_package}), \ >> + Version (== ${version_package})" >> + call_reprepro \ >> + -A "${DISTRO_ARCH}" \ >> + "include${p##*.}" \ >> + "${DEBDISTRONAME}" \ >> + "${p}" >> + done >> + >> + ls -1 "${BUILDROOT}"/*.dsc | while read -r p; do >> + name_package=$(cat "${p}" | print_field_value "Source") >> + version_package=$(cat "${p}" | print_field_value "Version") >> + >> + # Remove all source packages with the same version that were >> added to >> + # the repository in previous builds >> + call_reprepro \ >> + -A "source" \ >> + removefilter "${DEBDISTRONAME}" \ >> + "Package (== ${name_package}), \ >> + Version (== ${version_package})" >> + call_reprepro \ >> + -A "source" \ >> + "include${p##*.}" \ >> + "${DEBDISTRONAME}" \ >> + "${p}" >> done >> } >> >