| Message ID | 20260820133934.383231-8-akarpovich@ilbers.de |
|---|---|
| State | Under Review |
| Headers | show |
| Series | Improving base-apt usage | expand |
On Thu, 2026-08-20 at 15:29 +0200, Aliaksei Karpovich wrote: > From: Uladzimir Bely <ubely@ilbers.de> > > This makes Isar use `base-apt` repo in different way. Any package > installation is done from `base-apt` repo which is prepopulated > from external mirrors. > > This behaviour is disabled by default for downstreams. To enable it, > set the variable to "1", like isar does in local.conf.sample. > > In order to be able to run CI in old mode, allow CI read the option > from the environment. Also, adjust some tests (like repro one) to > make them work with ISAR_PREFETCH_BASE_APT set. > > Signed-off-by: Uladzimir Bely <ubely@ilbers.de> > --- > meta-test/conf/local.conf.sample | 3 +++ > testsuite/cibase.py | 4 ++++ > testsuite/cibuilder.py | 7 +++++++ > 3 files changed, 14 insertions(+) > > diff --git a/meta-test/conf/local.conf.sample b/meta-test/conf/local.conf.sample > index 2dbe28f1..74ee90b1 100644 > --- a/meta-test/conf/local.conf.sample > +++ b/meta-test/conf/local.conf.sample > @@ -27,6 +27,9 @@ BB_DISKMON_DIRS = "\ > MIRRORS ?= "git?://salsa\.debian\.org/debian/.* git://github.com/ilbers/BASENAME" > MIRRORS += "https?://cdn\.kernel\.org/.* https://mirrors.edge.kernel.org/PATH" > > +# Use new base-apt behaviour > +ISAR_PREFETCH_BASE_APT ?= "1" > + > # Users and groups > USERS += "root" > USER_root[password] ??= "$6$rounds=10000$RXeWrnFmkY$DtuS/OmsAS2cCEDo0BF5qQsizIrq6jPgXnwv3PHqREJeKd1sXdHX/ayQtuQWVDHe0KIO0/sVH8dvQm1KthF0d/" > diff --git a/testsuite/cibase.py b/testsuite/cibase.py > index 033b3b19..835593df 100755 > --- a/testsuite/cibase.py > +++ b/testsuite/cibase.py > @@ -81,10 +81,14 @@ class CIBaseTest(CIBuilder): > self.fail("GPG import failed") > > try: > + self.move_in_build_dir('tmp', 'tmp_before_repro') > self.bitbake(targets, **kwargs) > > repro_type = 'signed' if signed else 'unsigned' > self.move_in_build_dir('tmp', f"tmp_middle_repro_{repro_type}") > + > + os.makedirs(f"{self.build_dir}/tmp/deploy/") > + self.move_in_build_dir(f"tmp_middle_repro_{repro_type}/deploy/base-apt", 'tmp/deploy/base-apt') > self.configure( > targets=targets, > gpg_pub_key=gpg_pub_key if signed else None, > diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py > index 1d415084..ca75f2e1 100755 > --- a/testsuite/cibuilder.py > +++ b/testsuite/cibuilder.py > @@ -174,6 +174,10 @@ class CIBuilder(Test): > fail_on_cleanup = os.getenv('ISAR_FAIL_ON_CLEANUP') > > strlines = None if lines is None else '\\n'.join(lines) > + > + # get prefetch base apt mode from environment > + prefetch_base_apt = os.getenv('ISAR_PREFETCH_BASE_APT') Why from the environment and not from an avocado parameter as the other params (like rootless, sstate)? > + > self.log.info( > f"===================================================\n" > f"Configuring build_dir {self.build_dir}\n" > @@ -197,6 +201,7 @@ class CIBuilder(Test): > f" generate_sbom = {generate_sbom}\n" > f" rootless = {rootless}\n" > f" lines = {strlines}\n" > + f" prefetch_base_apt = {prefetch_base_apt}\n" > f"===================================================" > ) > > @@ -305,6 +310,8 @@ class CIBuilder(Test): > f.write('ISAR_ROOTLESS = "1"\n') > if lines is not None: > f.writelines((line + '\n' if not line.endswith('\n') else line) for line in lines) > + if prefetch_base_apt == "0": > + f.write('ISAR_PREFETCH_BASE_APT = "0"\n') Shouldn't it be the other way round? Just set this variable to 1 if enabled? Felix > > # include ci_build.conf in local.conf > with open(self.build_dir + '/conf/local.conf', 'r+') as f: > -- > 2.43.0 > > -- > You received this message because you are subscribed to the Google Groups "isar-users" group. > To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. > To view this discussion visit https://groups.google.com/d/msgid/isar-users/20260820133934.383231-8-akarpovich%40ilbers.de.
diff --git a/meta-test/conf/local.conf.sample b/meta-test/conf/local.conf.sample index 2dbe28f1..74ee90b1 100644 --- a/meta-test/conf/local.conf.sample +++ b/meta-test/conf/local.conf.sample @@ -27,6 +27,9 @@ BB_DISKMON_DIRS = "\ MIRRORS ?= "git?://salsa\.debian\.org/debian/.* git://github.com/ilbers/BASENAME" MIRRORS += "https?://cdn\.kernel\.org/.* https://mirrors.edge.kernel.org/PATH" +# Use new base-apt behaviour +ISAR_PREFETCH_BASE_APT ?= "1" + # Users and groups USERS += "root" USER_root[password] ??= "$6$rounds=10000$RXeWrnFmkY$DtuS/OmsAS2cCEDo0BF5qQsizIrq6jPgXnwv3PHqREJeKd1sXdHX/ayQtuQWVDHe0KIO0/sVH8dvQm1KthF0d/" diff --git a/testsuite/cibase.py b/testsuite/cibase.py index 033b3b19..835593df 100755 --- a/testsuite/cibase.py +++ b/testsuite/cibase.py @@ -81,10 +81,14 @@ class CIBaseTest(CIBuilder): self.fail("GPG import failed") try: + self.move_in_build_dir('tmp', 'tmp_before_repro') self.bitbake(targets, **kwargs) repro_type = 'signed' if signed else 'unsigned' self.move_in_build_dir('tmp', f"tmp_middle_repro_{repro_type}") + + os.makedirs(f"{self.build_dir}/tmp/deploy/") + self.move_in_build_dir(f"tmp_middle_repro_{repro_type}/deploy/base-apt", 'tmp/deploy/base-apt') self.configure( targets=targets, gpg_pub_key=gpg_pub_key if signed else None, diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py index 1d415084..ca75f2e1 100755 --- a/testsuite/cibuilder.py +++ b/testsuite/cibuilder.py @@ -174,6 +174,10 @@ class CIBuilder(Test): fail_on_cleanup = os.getenv('ISAR_FAIL_ON_CLEANUP') strlines = None if lines is None else '\\n'.join(lines) + + # get prefetch base apt mode from environment + prefetch_base_apt = os.getenv('ISAR_PREFETCH_BASE_APT') + self.log.info( f"===================================================\n" f"Configuring build_dir {self.build_dir}\n" @@ -197,6 +201,7 @@ class CIBuilder(Test): f" generate_sbom = {generate_sbom}\n" f" rootless = {rootless}\n" f" lines = {strlines}\n" + f" prefetch_base_apt = {prefetch_base_apt}\n" f"===================================================" ) @@ -305,6 +310,8 @@ class CIBuilder(Test): f.write('ISAR_ROOTLESS = "1"\n') if lines is not None: f.writelines((line + '\n' if not line.endswith('\n') else line) for line in lines) + if prefetch_base_apt == "0": + f.write('ISAR_PREFETCH_BASE_APT = "0"\n') # include ci_build.conf in local.conf with open(self.build_dir + '/conf/local.conf', 'r+') as f: