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