Building RPM for CentOS Stream 8

As part of your investigation ARC team tried to built mailman3 from Fedora src.rpm in CentOS Stream 8 chroot.

This proven to be difficult and it’s not possible without providing some patches to fix tests for mailman3.

Resources

Building RPM

We started with newest passing build in Fedora koji and tried to build it in CBS using infra tag infra8-infra-common-el8

cbs build --scratch infra8-infra-common-el8 mailman3-3.3.4-1.fc35.src.rpm

This failed with plenty of missing dependencies. Because of this we decided to use COPR for further building.

The COPR project used centos-stream-8 chroot with EPEL8 repository enabled.

In COPR project we started by building the same src.rpm and ended up with list of missing dependencies:

No matching package to install: 'python3-aiosmtpd >= 1.4.1'
No matching package to install: 'python3-authheaders >= 0.9.2'
No matching package to install: 'python3-click >= 7.0'
No matching package to install: 'python3-falcon > 1.0.0'
No matching package to install: 'python3-flufl-bounce'
No matching package to install: 'python3-flufl-i18n >= 2.0.1'
No matching package to install: 'python3-lazr-config'
No matching package to install: 'python3-lazr-smtptest'
No matching package to install: 'python3-zope-interface >= 5.0'

When building the python-aiosmtpd project from Fedora dist-git, we ended up in state, where we would need to build the whole python stack (python-setuptools, python-pip etc.) to continue.

We decided this wouldn’t work for us and started to instead build the oldest commit of mailman3 from Fedora dist-git. We now need to satisfy lesser amount of dependencies:

No matching package to install: 'python3-aiosmtpd'
No matching package to install: 'python3-falcon >= 1.0.0'
No matching package to install: 'python3-flufl-bounce'
No matching package to install: 'python3-flufl-i18n'
No matching package to install: 'python3-lazr-config'
No matching package to install: 'python3-lazr-smtptest'

After some trial and error we got all the dependencies satisfied and all of them were successfully build in COPR project.

Rebuilding the mailman3 after this failed on tests. After trying newer commits of mailman3 to fix the failing tests and building another missing dependencies, we ended up on the commit where we started and for which the python stack needs to be rebuild.

Before decision to cease further building attempts we built mailman3 from this commit in Fedora dist-git. This build has all dependencies satisfied but the tests are failing.

Conclusion

The build of the mailman3 in centos-stream-8 or EPEL8 chroot will probably take few weeks to solve and probably need providing downstream patches and newer python stack.