On Saturday, February 17, 2018 9:57:13 AM CET nim-nim wrote:
> > [snip, mock could ... ]
> > - does installroot and installs BuildRequires as usually
> > - runs %prep
> > - runs %foo_analyzer from %build_requires
> > - runs the rest of the build
> [snip]
> 
> That would work too, as long as you take into account a package may declare
> several %foo_analyzer

Well we could stick with

    %build_requires
    %foo_analyzer
    %bar_analyzer

if we baked the script into SRPM _unexpanded_, and build system was
responsible (through in-chroot rpm) for expanding ... user could pick how
many analysers he wanted.

Well, we wouldn't have to bake this into SRPM at all in the end -- but
just add some "flag" mentioning that "this is SRPM which needs multi-step
buildrequires resolution", so build system knows how to switch to the
appropriate multistep build mode.  The actual run of %build_requires would
be performed from extracted specfile.

> and  you probably need to loop their execution with BR population till there
> is no new results to handle complex cases transparently.  That's an analog of
> my "implicit looping".

I'm not sure calculating "fixed point" for build requires dependency graph
is required in the first place.  Having BuildRequires and then single-step
dynamic build requires would be powerful enough I think, and easier to
implement from buildsystem pov.  Slight benefit would be that packagers
would be much less motivated to do **very complicated magic** in
build-depsolving.

> > this way you don't have to adjust depsolver, only the build-system.
>
> The main drawback being that if rpm is completely unaware of this, it
> can not abort local builds with a sensible error if the local system is
> missing one of the dynamic BRs

If I understand you correctly, the dynamic build requires would be
slightly weaker compared to the standard BuildRequires;  is that a real
problem?  IOW, the semantics would be like `rpmbuild --nodeps` was enabled
for them.

In theory, rpm could reexec the %build_requires script before continuing
with %build just to check that nothing is missed... but then we would have
to expect that build system does the "fixpoint" calculation as mentioned
above.  I wouldn't be sure then that we are not stepping to far to academic
field..





-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/104#issuecomment-366429346
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to