Hi Jan,

Will need to recheck things here but there should be no .list files referencing public repos when building from the local apt cache (and therefore when you are wanting a reproducible build)
My local patch essentially does a full apt-get update but I now need to check if I did not alter the expected behavior :)

Cedric

On Monday, February 11, 2019 at 1:53:09 PM UTC+1, Jan Kiszka wrote:
On 11.02.19 10:35, [ext] Henning Schild wrote:
> Here i see an often repeating pattern. That "apt-get update" is now
> present in many entry points to the buildchroot.
> I guess we should factor it out and put it into a central place. And
> the rule of thumb probably is ... whenever you use anything apt,
> apt-get update before you do ...

If you are only talking about updating our locally maintained repo (like below),
that is fine to factor out and reuse. However, we must not update against public
repos after the initial pulling, in order to ensure we have a consistent package
set along the whole build.

Jan

>
> Henning
>
> Am Mon, 11 Feb 2019 10:33:24 +0100
> schrieb Henning Schild <henning...@siemens.com>:
>
>> From: Henning Schild <henning...@siemens.com>
>>
>> When rebuilding we can run into an inconsistent view where buildchroot
>> assumes it could download the sources of a modified upstream package.
>> After a "reprepro ... remove" we always need to "apt-get update" to
>> not operate on an old version of the metadata.
>>
>> Signed-off-by: Henning Schild <henning...@siemens.com>
>> ---
>>   meta/classes/dpkg-base.bbclass | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/meta/classes/dpkg-base.bbclass
>> b/meta/classes/dpkg-base.bbclass index 175dc80..5425df8 100644
>> --- a/meta/classes/dpkg-base.bbclass
>> +++ b/meta/classes/dpkg-base.bbclass
>> @@ -31,6 +31,10 @@ do_apt_fetch() {
>>           fi
>>           dpkg_do_mounts
>>           E="${@ bb.utils.export_proxies(d)}"
>> +        sudo -E chroot ${BUILDCHROOT_DIR} /usr/bin/apt-get update \
>> +                -o
>> Dir::Etc::sourcelist="sources.list.d/isar-apt.list" \
>> +                -o Dir::Etc::sourceparts="-" \
>> +                -o APT::Get::List-Cleanup="0"
>>           sudo -E chroot --userspec=$( id -u ):$( id -g )
>> ${BUILDCHROOT_DIR} \ sh -c 'cd ${PP} && apt-get -y source ${SRC_APT}'
>>           dpkg_undo_mounts
>

--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux