#5967: Enable source repo generation
Fedora Release Engineering
rel-eng at fedoraproject.org
Mon Nov 24 07:36:18 UTC 2014
#5967: Enable source repo generation
--------------------------+-----------------------
Reporter: mizdebsk | Owner: rel-eng@…
Type: enhancement | Status: new
Milestone: | Component: koji
Resolution: | Keywords: meeting
Blocked By: | Blocking:
--------------------------+-----------------------
Comment (by mizdebsk):
Koschei prioritizes package rebuilds according to changes in build
dependency tree. After new repo for f22-build is generated, Koschei
has to calculate differences in build deps between previous and newly
generated repo, for all packages it tracks.
Koschei generates package build dependency tree using hawkey library,
which is also used by DNF. Hawkey works with YUM metadata. In this
case metadata for both source and binary packages is needed. Source
repo contains the SRPM and info about its build requires, binary repo
contains dependency info for all RPMs which may be transitive build
deps. For binary repository Koschei simply downloads metadada for
f22-build from Koji, but there is no repo for source RPMs, so Koschei
has to construct it by itself. To do this it downloads SRPMs from Koji
and runs createrepo_c on them.
Current solution works, but it has disadvantages:
* extra storage required for SRPMs (about 46 GiB),
* SRPMs have to be transfered from Koji over network,
* extra code has to be maintained.
We can keep current solution, but enabling source repo generation
for f22-build would make things considerably simpler. Additionally
I think such repository could be used in other ways too and as such it
would be worth enabling.
One problem mentioned during the meeting was arch-dependant SRPMs
(SRPMs which have different contents depending on what architecture
they have been built). SRPM contents depend not only on architecture,
but a number of other things too. Theoretically spec file can contain
line like:
{{{
%{lua: if(os.time()%2==0) then print("BuildRequires: foo"); end}
}}}
which will add BuildRequires semi-randomly. I think that there is no
way to properly fix all such cases. If some package has
non-deterministic build then it's a problem in that package and we
shouldn't try to workaround it.
--
Ticket URL: <https://fedorahosted.org/rel-eng/ticket/5967#comment:5>
Fedora Release Engineering <http://fedorahosted.org/rel-eng>
Release Engineering for the Fedora Project
More information about the rel-eng
mailing list