Recently, there was discussion about bootstrapping in Fedora devel ML [1] followed by request to Koji [2] and it was about enabling this workflow:
$ fedpkg request-side-tag $ koji edit-sidetag --rpm-macro _with_bootstrap=1 f38-build-side-62476 2023-01-30 17:33:37,585 [ERROR] koji: GenericError: RPM macros change is not allowed in parent tag. $ koji taginfo f38-build-side-62476 Tag: f38-build-side-62476 [62476] Arches: i686 x86_64 aarch64 ppc64le s390x Groups: appliance-build, build, livecd-build, livemedia-build, srpm-build Tag options: mock.new_chroot : 1 [f38] mock.package_manager : 'dnf' [f38] sidetag : True sidetag_user : 'jskarvad' sidetag_user_id : 1289 Targets that build into this tag: f38-build-side-62476 (f38-build-side-62476, no active repo) This tag is a buildroot for one or more targets Current repo: no active repo Targets that build from this tag: f38-build-side-62476 Inheritance: 0 .... f38-build [56370]
And to make this work, it seems that:
parent tag must have "sidetag_rpm_macros_allowed: 1"
@tkopecek FYI
We need a little bit more time to investigate, if --rpm-macro can be limited to a specific macro. If we are unable to limit the call to a specific macro like _with_bootstrap Release Engineering will require FESCO to take note of this change. Because granting the ability to override any macro to all packagers can potentially cause distribution-wise problems.
_with_bootstrap
Any packager can already override any macro with %global or %define in a specfile. What's different here?
%global
%define
Yeah, thats true. Although only after the src.rpm is built I think?
It's less apparent in koji history rather than git, might be confusing... but then I guess bootstrap might be confusing too.
Metadata Update from @phsmoura: - Issue tagged with: low-trouble, medium-gain
Any packager can include %{_rpmconfigdir}/macros.d/macros.foo file with macros in their package, which will influence all dependencies.
%{_rpmconfigdir}/macros.d/macros.foo
Not mentioning that modularity allows to define macros per module.
I personally don't need any macro in the sidetag, but the bootstrap macro would be helpful. Maybe the boostrap macro could be whitelisted and its change allowed in the sidetag or/and new koji option (e.g. --botstrap) could be added to add just this macro to the sidetag.
Well, in any case, if we wait for changes in Koji, it will take additional time. Months or even years. IMHO, it'd be nice if we moved forward with what we have and if Koji has some improvements, then we can revisit.
@tkopecek or is there chance the proposed changes here or in koji#3669 could land in foreseeable future? Or what is your view?
I can prepare additionalbehaviour as @kevin proposed. So "sidetag_rpm_macros_allowed" could be "1/true" or list of allowed macros. It is pretty easy change. Now it is too late for putting it to next release (dev freeze already gone), but for next one (2 months) or backport to fedora's instance (2 weeks) is doable.
Created koji PR https://pagure.io/koji/pull-request/3674
Oh, nice. Then this would be probably worth of waiting for this, unless that means waiting for years on Fedora side for some reason ;)
The PR has landed. So what are the next steps? I assume Koji upstream release ...
Koji 1.33 is planned for May 19th. So backport this patch (it has no dependencies) is a way if you need it now.
(this is mostly just ping 😎)
https://docs.pagure.org/koji/release_notes/release_notes_1.33
Do we have the Koji deployed already or what are the next steps?
It is not deployed already.
I'm likely to do so thursday as part of the planned koji database/s390x builders outages. :)
Ping, any update here please?
Koji 1.33 is deployed on Fedora Infrastructure, which should enable Release Engineering to set up appropriate macro whitelist in parent tags.
Nice. Should I go ahead and request approval from FeSCo for the bootstrap macro?
bootstrap
Sure.
Koji 1.33 is deployed on Fedora Infrastructure, which should enable Release Engineering to set up appropriate macro whitelist in parent tags. Nice. Should I go ahead and request approval from FeSCo for the bootstrap macro?
https://pagure.io/fesco/issue/3046
Koji 1.33 is deployed on Fedora Infrastructure, which should enable Release Engineering to set up appropriate macro whitelist in parent tags. Nice. Should I go ahead and request approval from FeSCo for the bootstrap macro? https://pagure.io/fesco/issue/3046
This was approved:
https://pagure.io/fesco/issue/3046#comment-869457
Can we proceed with the _bootstrap macro, please?
_bootstrap
The policy is already public:
https://docs.fedoraproject.org/en-US/fesco/Policy_for_buildroot_macros/
I have set the macro allowed for f40 sidetags. Can you test and confirm it works? If it does, we can update the other active branches.
It works it seems, here are the relevant builds:
https://koji.fedoraproject.org/koji/buildinfo?buildID=2277522 https://koji.fedoraproject.org/koji/buildinfo?buildID=2277558
and Bodhi update:
https://bodhi.fedoraproject.org/updates/FEDORA-2023-88e9063dfb
However, I have hit some strange issue, but that is hopefully not a blocker.
It seems to be expected.
I've now added it to the other archive build branches.
Anything more to do here? Or shall we close?
Can't think of anything. Thx a lot! I am super excited about this 🤩
Please also allow setting _with_bootstrap macro for sidetags inheriting from eln-build.
eln-build
Done!
Metadata Update from @kevin: - Issue close_status updated to: Fixed - Issue status updated to: Closed (was: Open)
Log in to comment on this ticket.