Re: Fedora 32 System-Wide Change proposal: Modules in Non-Modular Buildroot

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

 



On Thu, Nov 14, 2019 at 7:48 PM Stephen Gallagher <sgallagh@xxxxxxxxxx> wrote:
>
> On Thu, Nov 14, 2019 at 12:12 PM Miro Hrončok <mhroncok@xxxxxxxxxx> wrote:
> >
> > On 09. 10. 19 22:46, Ben Cotton wrote:
> > > https://fedoraproject.org/wiki/Changes/Modules_In_Non-Modular_Buildroot
> > >
> > > Enable module default streams in the buildroot repository for modular
> > > and non-modular RPMs.
> > >
> > > == Summary ==
> > > This Change (colloquially referred to as "Ursa Prime") enables the
> > > Koji build-system to include the RPM artifacts provided by module
> > > default streams in the buildroot when building non-modular (or
> > > "traditional") RPMs.
> >
> > I have one more technical concern.
> >
> > Suppose a packager decides to package the "mycoolapp" software as a non-modular
> > package. "mycoolapp" is written in Python, it builds again non-modular Python,
> > currently 3.8, it requires "python(abi) = 3.8" on runtime.
> >
> > The packager decides to use avocado in %check. Avocado comes from a module, it
> > requires "python(abi) = 3.8" as well, because the modular package was built with
> > Python 3.8. Avocado is in the bulidroot, so everything works.
> >
> > The Python maintainers (that includes me) decide to update to Python 3.9 in
> > Fedora 33. They request a side tag to do that. They update the python3 to 3.9
> > and they mass rebuild all non-modular Python packages in it. "mycoolapp" cannot
> > resolve build dependencies because avocado requires "python(abi) = 3.8".
> >
> > The Python maintainers need to detect this and figure out what happened.
> > Then, the Python maintainers need to either:
> >
> >   1. Exclude "mycoolapp" from the rebuild. That is possible until dozens of
> > other packages require "mycoolapp".
> >
> >   2. Ask the avocado maintainers to rebuild their module in the side tag and ask
> > releng to add the side-tag-built module into the side-tag buildroot (if it is
> > even possible).
> >
> >   3. Modify the spec of "mycoolapp" to temporarily disable %check and loose the
> > avocado dependency.
> >
> > Or is there some other way?
> >
>
> Does Python actually break ABI on minor releases? So a full rebuild is
> required for that case?
>
> What we would probably need to do is tag the python39 build into the
> modular buildroot for the appropriate platform and then rebuild
> avocado while that was in the buildroot.

That would mean, each release - bunch of additional manual work.

> Another option would be to create a `python3` module stream for each
> minor release and make one of them the default stream for the side-tag
> so the non-modular versions could be built against that. Then the
> avocado module would set its dependencies to be:
> ```
> buildrequires:
>   platform: [ ]
>   python3: [ ]
> ```
> (Read: build for all streams of python for all available platforms).
> Then whenever the default stream of python3 changes over in Rawhide,
> avocado would follow because it was already built for the next
> version.

This implies that Python maintainers want to deal with Modularity
which I believe is not the case.

> _______________________________________________
> devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
> Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
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