Re: F31 System-Wide Change proposal: BuildRequires Generators

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 18, 2019 at 4:36 PM Dridi Boukelmoune
<dridi.boukelmoune@xxxxxxxxx> wrote:
>
> On Mon, Feb 18, 2019 at 9:21 PM Ben Cotton <bcotton@xxxxxxxxxx> wrote:
> >
> > https://fedoraproject.org/wiki/Changes/BuildRequires_Generators
> >
> > = BuildRequires Generators =
> >
> > == Summary ==
> > Add possibility to generate build-time dependencies within RPM spec
> > file and teach RPM and mock how to handle this.
> >
> > == Owner ==
> > * Name: [[User:ignatenkobrain|Igor Gnatenko]], [[User:ffesti|Florian
> > Festi]], [[User:msuchy|Miroslav Suchý]]
> > * Email: ignatenkobrain@xxxxxxxxxxxxxxxxx, ffesti@xxxxxxxxxx, miroslav@xxxxxxxx
> >
> > == Detailed Description ==
> > For many languages (Rust, Golang, Node.Js, Ruby, Python),
> > BuildRequires can be automatically generated. All it takes, run some
> > special tool which will output dependencies in RPM format.
> >
> > Q: How will it work under the hood?
> > A: When you build RPM, something like this will happen under the hood…
> > # rpm would perform %prep (which is supposed to abort if some
> > dependencies missing and print them)
> > # mock would install those dependencies and resume build
>
> As of today, running %configure or %cmake is part of the %build step,
> not the %prep step according to the guidelines.
>
> Would it mean that we should move this kind of commands in the %prep
> step? I think that's technically where they belong. However, focusing
> on language stacks won't help for polyglot projects (for example when
> using gcc in a Rust project).
>

Current discussion upstream indicates we'll have a new spec section
for generating build dependencies. It'll happen between %prep and
%build, most likely.

That should not require changing the behavior of how things are done now.

> > Q: Will src.rpm contain all generated dependencies?
> > A: This is not known yet, we'll update page once it is known.
> >
> > Q: Does this mean that package builds won't be reproducible anymore?
> > A: No, as long as you have same buildroot and tool which is generating
> > BuildRequires is doing so in reproducible manner, it should not affect
> > reproducibility.
> >
> > == Benefit to Fedora ==
> >
> > Packagers won't have to pre-generate BuildRequires in the spec file
> > which means it will be always updated (and correct) :
> >
> > * Packagers can focus of making their packages better instead of
> > spending all their packaging time copying BuildRequires from
> > documentation and third party tools.
> > * BuildRequires are dropped as soon as they're no longer necessary
> > * Packages can be easily bumped without requiring a manual BuildRequires refresh
> > * BuildRequires and Requires generation can use similar utilities,
> > making sure that the deps packages declare can also be used for
> > second-level building. Packages no longer need to declare the deps of
> > their second and n-th dependencies because someone forgot to declare
> > them in the correct package.
> >
> > == Scope ==
> > * Proposal owners: Implement support for a feature in RPM and mock (if
> > implemented properly, Koji should just work). Make use of it in Rust
> > ecosystem.
> > * Other developers: Maintainers of language stacks are advised to use
> > this feature.
> > * Release engineering: [https://pagure.io/releng/issue/8129 #8129]
> > * Policies and guidelines: Packaging Guidelines need to be updated
> > with instructions how to use this feature.
> > * Trademark approval: N/A (not needed for this Change)
> >
> > == Upgrade/compatibility impact ==
> > Packagers and users who use repoquery might be affected (src.rpm might
> > not contain generated dependencies).
> >
> > == How To Test ==
> > TBD.
> >
> > == User Experience ==
> > Users won't notice differences.
>
> As a mock and RPM user on Fedora, outside of my Fedora endeavors, I
> beg to differ ;-)
>

Yeah, everyone has to update. :)



-- 
真実はいつも一つ!/ Always, there's only one truth!
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux