Include installed_pkgs.log in Koji output #11532
Labels
No labels
after freeze
automation
backlog
blocked
change-ack
change-nak
change-noreleng
changes
Closed As
Can't Fix
Closed As
Duplicate
Closed As
Fixed
Closed As
Fixed with Explanation
Closed As
Get back later
Closed As
Grooming
Closed As
Insufficient data
Closed As
Invalid
Closed As
It's all good
Closed As
taiga
Closed As
upstream
day-to-day
dev
docs
easyfix
epel
f26
f27
f28
f29
f30
f31
f32
f33
f34
f35
f36
f37
f38
f39
f40
f41
f42
f43
f44
f45
fedora
groomed
high-gain
high-trouble
in-progress
in-review
investigation
legal
low-gain
low-trouble
mass rebuild
medium-gain
medium-trouble
meeting
mini-initiative
new_artifact
ops
pdc_retirement
rawhide
RCA
review
script
sidetarget
sprint-0
sprint-1
sprint-2
sprint-3
sprint-4
sprint-5
unfrozen
waiting on external
Backlog Status
Needs Review
Backlog Status
Ready
chore
documentation
points
01
points
02
points
03
points
05
points
08
points
13
Priority
High
Priority
Low
Priority
Medium
release-process
Sprint Status
Blocked
Sprint Status
Done
Sprint Status
In Progress
Sprint Status
Review
Sprint Status
To Do
Technical Debt
Work Item
Bug
Work Item
Epic
Work Item
Spike
Work Item
Task
Work Item
User Story
No milestone
No project
No assignees
5 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
releng/tickets#11532
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Currently, the Content Resolver (https://tiny.distro.builders/) relies on unreliable parsing of root.log to identify the build dependencies for a build. All of the information it needs would actually be provided by installed_pkgs.log if we were including that in the output.
When do you need this? (YYYY/MM/DD)
Before the F39 mass-rebuild starts.
When is this no longer needed or useful? (YYYY/MM/DD)
Useful forever.
If we cannot complete your request, what is the impact?
We have to continue to use unreliable sources to determine the packages present in a build.
Additionally, we plan to enhance the ELN DistroBuildSync tool to take advantage of this for more reliable rebuilds of side-tags.
See https://rpm-software-management.github.io/mock/Plugin-PackageState for details on adding the necessary mock config.
Metadata Update from @phsmoura:
That won't work well, because there's no distinction between directly required and dependencies. That distinction is quite important when you're trying to cut build dependencies — you need to know what's an actual direct build dependency to cut, and what was dragged in there as a runtime dependency of the build dependency.
We have it in the CentOS Stream koji: https://kojihub.stream.centos.org/kojifiles/packages/autofs/5.1.4/108.el8/data/logs/aarch64/installed_pkgs.log
^^ see it's just one long list of everything.
The root log splits it into two sections: https://kojihub.stream.centos.org/kojifiles/packages/autofs/5.1.4/108.el8/data/logs/aarch64/root.log
Content Resolver only takes the directly rquired, and resolves the dependencies itself. If you only use the single list you'll lose the distinction.
Parsing root logs was really the last resort, believe me, I looked at installed_pkgs.log before.
Ideally we'd have arch-specific SRPMs available in a repo. Or actually just the repodata would be enough, we don't need the packages. Just need to have a way to query the dependencies, which are in many cases different per architecture.
In light of that... is this still desired?
It's still desirable for the ELN build sync; We're looking at this as a way to potentially make rebuilds more reliable there by replicating the buildroot more exactly.
It's also desirable to debug sudden build failures. Such lists should be easier to diff.
So, it's been two years... still wanted?
The place to add it would be: roles/koji_builder/templates/builders/site-defaults.cfg
it does mean every single build will have another log file/take up more space, but I suppose it's not a super big deal.
@kevin wrote in #11532 (comment):
Funnily-enough, I was just discussing this topic this morning with @yselkowitz
The output of that discussion was this:
installed-pkgs.logis not going to do what we want, because it includes everything installed in the container, not just the dependencies installed byBuildRequires:Sometime in the future, I think we need to discuss with the DNF and mock teams about having a mode of operation that produces a machine-readable output format showing the fully-resolved graph it used to determine what it installs. As things stand right now,
installed-pkgs.logisn't the right choice for us (Content Resolver).