#3881 What affects availability of the side-tag macro in buildroot?
Closed: Fixed by vondruch. Opened by vondruch.

Trying to play with the _with_bootstrap macro in Fedora Koji, I hit an issue, where I believe I have unset the macro, while it was still available in the side-tag. Let me share part of my session:

$ koji list-history --tag f40-build-side-72114
Tue Aug 22 09:44:29 2023 new build target: f40-build-side-72114 by vondruch [still active]
Tue Aug 22 09:44:29 2023 new tag: f40-build-side-72114 by vondruch [still active]
Tue Aug 22 09:44:29 2023 added tag option sidetag for tag f40-build-side-72114 by vondruch [still active]
Tue Aug 22 09:44:29 2023 added tag option sidetag_user for tag f40-build-side-72114 by vondruch [still active]
Tue Aug 22 09:44:29 2023 added tag option sidetag_user_id for tag f40-build-side-72114 by vondruch [still active]
Tue Aug 22 09:44:29 2023 inheritance line f40-build-side-72114->f40-build added by vondruch [still active]
Tue Aug 22 11:47:43 2023 added tag option rpm.macro._with_bootstrap for tag f40-build-side-72114 by vondruch [still active]
$ koji taginfo f40-build-side-72114
Tag: f40-build-side-72114 [72114]
Arches: i686 x86_64 aarch64 ppc64le s390x
Groups: appliance-build, build, livecd-build, livemedia-build, srpm-build
Tag options:
  mock.new_chroot : 1          [f40]
  mock.package_manager : 'dnf' [f40]
  rpm.macro._with_bootstrap : 1
  sidetag : True
  sidetag_rpm_macros_allowed : '_with_bootstrap' [f40-build]
  sidetag_user : 'vondruch'
  sidetag_user_id : 1610
Targets that build into this tag:
  f40-build-side-72114 (f40-build-side-72114, repo#5358238: 2023-08-22 10:08:44.402592+00:00)
This tag is a buildroot for one or more targets
Current repo: repo#5358238: 2023-08-22 10:08:44.402592+00:00
Targets that build from this tag:
  f40-build-side-72114
Inheritance:
  0    .... f40-build [71278]
$ fedpkg build --target=f40-build-side-72114
Building rubygem-rspec-rails-6.0.3-1.fc40 for f40-build-side-72114
Created task: 105124505
Task info: https://koji.fedoraproject.org/koji/taskinfo?taskID=105124505
Watching tasks (this may be safely interrupted)...
105124505 build (f40-build-side-72114, /rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): free
105124505 build (f40-build-side-72114, /rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): free -> open (buildvm-a64-29.iad2.fedoraproject.org)
  105124508 buildSRPMFromSCM (/rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): free
  105124508 buildSRPMFromSCM (/rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): free -> open (buildvm-x86-12.iad2.fedoraproject.org)
  105124638 buildArch (rubygem-rspec-rails-6.0.3-1.fc40~bootstrap.src.rpm, noarch): free
  105124508 buildSRPMFromSCM (/rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): open (buildvm-x86-12.iad2.fedoraproject.org) -> closed
  1 free  1 open  1 done  0 failed
  105124638 buildArch (rubygem-rspec-rails-6.0.3-1.fc40~bootstrap.src.rpm, noarch): free -> open (buildvm-a64-22.iad2.fedoraproject.org)
  105124750 tagBuild (noarch): closed
  105124638 buildArch (rubygem-rspec-rails-6.0.3-1.fc40~bootstrap.src.rpm, noarch): open (buildvm-a64-22.iad2.fedoraproject.org) -> closed
  0 free  1 open  3 done  0 failed
105124505 build (f40-build-side-72114, /rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): open (buildvm-a64-29.iad2.fedoraproject.org) -> closed
  0 free  0 open  4 done  0 failed
105124505 build (f40-build-side-72114, /rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af) completed successfully

So at this point, I had rubygem-rspec-rails-6.0.3-1.fc40~bootstrap.src.rpm build in the side tag and therefore I have removed the _with_bootsrap macro and proceeded with a build:

$ koji edit-sidetag --remove-rpm-macro _with_bootstrap f40-build-side-72114
$ koji taginfo f40-build-side-72114
Tag: f40-build-side-72114 [72114]
Arches: i686 x86_64 aarch64 ppc64le s390x
Groups: appliance-build, build, livecd-build, livemedia-build, srpm-build
Tag options:
  mock.new_chroot : 1          [f40]
  mock.package_manager : 'dnf' [f40]
  sidetag : True
  sidetag_rpm_macros_allowed : '_with_bootstrap' [f40-build]
  sidetag_user : 'vondruch'
  sidetag_user_id : 1610
Targets that build into this tag:
  f40-build-side-72114 (f40-build-side-72114, repo#5358568: 2023-08-22 11:38:50.815873+00:00)
This tag is a buildroot for one or more targets
Current repo: repo#5358568: 2023-08-22 11:38:50.815873+00:00
Targets that build from this tag:
  f40-build-side-72114
Inheritance:
  0    .... f40-build [71278]
$ koji list-history --tag f40-build-side-72114
Tue Aug 22 09:44:29 2023 new build target: f40-build-side-72114 by vondruch [still active]
Tue Aug 22 09:44:29 2023 new tag: f40-build-side-72114 by vondruch [still active]
Tue Aug 22 09:44:29 2023 added tag option sidetag for tag f40-build-side-72114 by vondruch [still active]
Tue Aug 22 09:44:29 2023 added tag option sidetag_user for tag f40-build-side-72114 by vondruch [still active]
Tue Aug 22 09:44:29 2023 added tag option sidetag_user_id for tag f40-build-side-72114 by vondruch [still active]
Tue Aug 22 09:44:29 2023 inheritance line f40-build-side-72114->f40-build added by vondruch [still active]
Tue Aug 22 11:47:43 2023 added tag option rpm.macro._with_bootstrap for tag f40-build-side-72114 by vondruch
Tue Aug 22 12:59:03 2023 rubygem-rspec-rails-6.0.3-1.fc40~bootstrap tagged into f40-build-side-72114 by vondruch [still active]
Tue Aug 22 13:54:42 2023 tag option rpm.macro._with_bootstrap removed for f40-build-side-72114 by vondruch
$ fedpkg build --target=f40-build-side-72114
Building rubygem-rspec-rails-6.0.3-1.fc40 for f40-build-side-72114
Created task: 105126817
Task info: https://koji.fedoraproject.org/koji/taskinfo?taskID=105126817
Watching tasks (this may be safely interrupted)...
105126817 build (f40-build-side-72114, /rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): free
^CTasks still running. You can continue to watch with the 'koji watch-task' command.
Running Tasks: 105126817 build (f40-build-side-72114, /rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): free
[vondruch@fedora rubygem-rspec-rails (rawhide %)]$ koji watch-task 105126817
Watching tasks (this may be safely interrupted)...
105126817 build (f40-build-side-72114, /rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): open (buildvm-a64-35.iad2.fedoraproject.org)
  105126829 buildSRPMFromSCM (/rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): free
  105126829 buildSRPMFromSCM (/rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): free -> open (buildvm-ppc64le-04.iad2.fedoraproject.org)
  105126829 buildSRPMFromSCM (/rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): open (buildvm-ppc64le-04.iad2.fedoraproject.org) -> closed
  0 free  1 open  1 done  0 failed
105126817 build (f40-build-side-72114, /rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): open (buildvm-a64-35.iad2.fedoraproject.org) -> FAILED: GenericError: Build already exists (id=2277522, state=COMPLETE): {'name': 'rubygem-rspec-rails', 'version': '6.0.3', 'release': '1.fc40~bootstrap', 'epoch': None, 'task_id': 105126817, 'source': 'git+https://src.fedoraproject.org/rpms/rubygem-rspec-rails.git#5f46d8fe388b16ef3abef7217accca2dc2fbe7af', 'extra': '{"source": {"original_url": "git+https://src.fedoraproject.org/rpms/rubygem-rspec-rails.git#5f46d8fe388b16ef3abef7217accca2dc2fbe7af"}}', 'owner': 1610, 'state': 0, 'completion_time': None, 'pkg_id': 12167, 'start_time': 'NOW', 'volume_id': 0}
  0 free  0 open  1 done  1 failed

However, the build error was unexpected:

Build already exists (id=2277522, state=COMPLETE): {'name': 'rubygem-rspec-rails', 'version': '6.0.3', 'release': '1.fc40~bootstrap', 'epoch': None, 'task_id': 105126817, 'source': 

So is there something such as wait-repo prior the macro really is removed from the use? The subsequent build finished just fine:

$ fedpkg build --target=f40-build-side-72114
Building rubygem-rspec-rails-6.0.3-1.fc40 for f40-build-side-72114
Created task: 105127002
Task info: https://koji.fedoraproject.org/koji/taskinfo?taskID=105127002
Watching tasks (this may be safely interrupted)...
105127002 build (f40-build-side-72114, /rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): free
105127002 build (f40-build-side-72114, /rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): free -> open (buildvm-ppc64le-15.iad2.fedoraproject.org)
  105127021 buildSRPMFromSCM (/rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): free
  105127021 buildSRPMFromSCM (/rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): free -> open (buildvm-ppc64le-17.iad2.fedoraproject.org)
  105127317 buildArch (rubygem-rspec-rails-6.0.3-1.fc40.src.rpm, noarch): free
  105127021 buildSRPMFromSCM (/rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): open (buildvm-ppc64le-17.iad2.fedoraproject.org) -> closed
  1 free  1 open  1 done  0 failed
  105127317 buildArch (rubygem-rspec-rails-6.0.3-1.fc40.src.rpm, noarch): free -> open (buildvm-s390x-21.s390.fedoraproject.org)
  105127446 tagBuild (noarch): free
  105127317 buildArch (rubygem-rspec-rails-6.0.3-1.fc40.src.rpm, noarch): open (buildvm-s390x-21.s390.fedoraproject.org) -> closed
  1 free  1 open  2 done  0 failed
105127002 build (f40-build-side-72114, /rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af): open (buildvm-ppc64le-15.iad2.fedoraproject.org) -> closed
  1 free  0 open  3 done  0 failed
  105127446 tagBuild (noarch): free -> closed
  0 free  0 open  4 done  0 failed
105127002 build (f40-build-side-72114, /rpms/rubygem-rspec-rails.git:5f46d8fe388b16ef3abef7217accca2dc2fbe7af) completed successfully

Yes, until next repo regen the old config + data are used.

Metadata Update from @tkopecek:
- Custom field Size adjusted to None

I am trying to put some documentation together:

https://pagure.io/fedora-docs/package-maintainer-docs/pull-request/133

So what is the appropriate command? Would koji wait-repo f40-build-side-72114 be enough?

Yes, if it is run immediately after change (before kojira regenerates the repo), it will fulfill the purpose.

Otherwise it is a more complicated command as we don't have direct support for that in CLI.

Ok, I tried to capture this in the following commit (part of the above mentioned PR):

https://pagure.io/fork/vondruch/fedora-docs/package-maintainer-docs/c/09030b9e32207f9afd3ee82d5446f4d5fc82c3f4

Thx for you help.

Metadata Update from @vondruch:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

This issue has been migrated to Fedora Forge:
https://forge.fedoraproject.org/koji/koji/issues/3881

Please continue any further discussion there.

Metadata