On Sáb, 2014-07-19 at 12:30 +0100, Richard W.M. Jones wrote:
The first step of most Koji builds is buildSRPMFromSCM, where a
.src.rpm file is built from the git repo.
Currently this involves completely building a mock buildroot
containing all the BuildRequires, and running `rpmbuild -bs'. This
takes many minutes (especially when arm is chosen as a builder).
If I understood the question, I use
fedpkg switch-branch f20 , fedpkg switch-branch master etc and fedpkg
srpm .
It seems the reason for this is because the spec file has to be
fully
parsed in order to work out the Source lines. Since Source lines
might depend on RPM macros which might depend on any BuildRequire'd
package, every BR package must be installed in the mock root.
`rpmbuild -bs' takes seconds because it just bundles all the Source
files with the spec file into an SRPM.
Is this really necessary?
Just if we have "Source lines might depend on RPM macros which might
depend on any BuildRequire'd" :)
have you any example , Source lines ? Source lines should be immutable
I remember put a ifdef in a source line for i386 and src.rpm wasn't
equal for i386 and x86_64, but should, because we only export one of
them.
Two shortcuts seem possible:
(1) Limit the use of macros in Source lines, so that only a simple,
standard, perhaps pre-cached buildroot can be used.
(2) Perhaps uglier: Just build an SRPM that contains everything in
dist-git + everything in the lookaside cache, and hope for the best ...
Thoughts?
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW
--
Sérgio M. B.