Re: building against epel8 modules

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

 



On Thu, 24 Jun 2021 at 10:03, Remi Collet <Fedora@xxxxxxxxxxxxxxxxx> wrote:
>
> Le 24/06/2021 à 15:33, Matthew Miller a écrit :
> > On Thu, Jun 24, 2021 at 03:08:42PM +0200, Remi Collet wrote:
> >> P.S. yes, I'm really disappointed by how Fedora evolves,
> >> not being able to use a proper build system (modules aware)
> >
> > If you could wave a magic wand here, what would a proper build system look
> > like?
>
> I'm fine with current tooling (Koji)
>
> I only like to be able to build additional packages for existing modules
> (e.g. php extensions in EPEL for php streams in RHEL) so
> in some new module (php-extras) or better in the same one (php)
>
> In short being able to run "fedpkg module build" from
> https://src.fedoraproject.org/modules/php-extras/tree/7.3
> (work is ready for months)
>
> I still don't understand what Frankenstein buildroot we are using.
>
> 2 lines in a mock file allow to be aware of modules...
>
> modules=1
> ...
> config_opts['module_enable'] = ['php:7.4', ...
>
> 2h of work to find the proper configuration and
> I was able to build such packages since the day RHEL-8-Beta
> was made publicly available, in May 2018... 3 years ago
> and still waiting for something to happen in EPEL
>

It is easy to do this in a mock. It isn't easy to do this in koji and
or mbs because they assume they 'built' everything they are going to
use to build other things. This means we either have to build all of
RHEL with the Fedora koji/mbs packages so they 'understand' what is
there.. or you have to come up with some sort of hack which does
something like this:

1. koji/mbs create the mock.cfg file and start setting up a buildroot
on a builder.
2. your script rewrites the mock.cfg with the config items and fake
koji/mbs into everything is ok.
3. koji/mbs continues the build

The problems with this method are the following:
1. You have to hand edit the script to know what modules are being
used and for when.
2. You have to hope that 2 doesn't get abused in multiple ways
3. It is kludgy and breaks a lot so you end up doing a 'repeat build
until either fail_counter=X || build_complete'
4. You end up needing to do this separately from the regular Fedora
koji/mbs because if you can do this in one build root, you can do it
in all..

The way EPEL is set up is a third way which is a 'best of worst worlds' method:
1. You download RHEL packages into a repository
2. You run a demodularizer which breaks apart the modules into a one
tree. You have to be careful because some modules conflict so you only
do the ones which are 'Default' or in CodeReady
3. You rebuild this into a single repository
4. koji looks at this as an external repository like it has done from
EPEL-5 days. This uses a method which was meant for just kickstarting
a build tree by having an external tree to point to but works for
RHEL. Koji tries to deal with this but it causes issues
5. mbs still only knows how to use modules it built itself.. This
means that the external modules in RHEL are invisible to it. This is
what breaks it from being able to build PHP modules.

In the end, the core problem is that we are (ab)using the koji/mbs
build structure to do things it was never intended to do. It has been
made to do it, but deep down it is like making pizza on a shovel at a
blacksmith.. you can do it but neither the forge or the shovel were
meant for this and you end up constantly trying to figure out how to
remove coal tar from the food.


> Ex:
> https://rpms.remirepo.net/temp/epel-temp.repo
> And mock configuration
> https://git.remirepo.net/cgit/tools/mock.git/tree/epel874.cfg
>
>
>
> Remi
> _______________________________________________
> 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
> Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure



-- 
Stephen J Smoogen.
I've seen things you people wouldn't believe. Flame wars in
sci.astro.orion. I have seen SPAM filters overload because of Godwin's
Law. All those moments will be lost in time... like posts on  BBS...
time to reboot.
_______________________________________________
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
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[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