The worst part about the packaging work is, the tools used to create RPM packages is showing its age. RPM macros, the language for describing packages, is based on text substitution which makes it tricky to write. [1] RPM builds don't do build-time sandboxing, so a package won't build consistently across machines without extreme care taken in both the package descriptions and the build environment. Even if the package itself builds and runs on the same machine, it isn't guaranteed to run on other machines too because it lacks a way to ensure reproducibility.
[1]: For example, commenting out a macro might not work as expected because the expanded text might include a newline.