On 10/29/2017 08:40 AM, vychytraly . wrote:
Frank please could you explain how to create rpms for el7 from fedora src.rpms?
Well, I am not Frank, but you download the SRPM (I use wget) and put it into a directory.
Then you extract it .. there are many ways to do that .. I do this:
rpm -Uvh --define "_topdir $(pwd)" --nodeps <srpm.name>
Then you have an exploded SRPM with a SPECS/ and SOURCES/ directory. You then need to edit the SPECS/<name>.spec file and verify each line in the spec file will work with EL7 instead of fc25 (or whatever version of Fedora you got the SRPM from). This includes but is not limited to knowing the differences in the rpm macros between that version of Fedora's rpmbuild and CentOS 7's rpmbuild .. what the versions of shared libraries (or other dependencies like python, etc.) are for that version of Fedora and CentOS 7 .. which one of those shared dependencies are required or can be degraded in version to the ones in CentOS 7.
Basically, the SRPMs from Fedora 18 generally had all the required dependencies for RHEL / CentOS for the 7.0 release cycle source code .. BUT with rebases in every point release since the 7.0 cycle,, that is no longer true. Now some components (like Gnome) have very newer dependencies while others still have the dependencies from Fedora 18.
Fedora 18 stopped getting updates and went EOL on 2014-01-14 .. any packages that you build based on those SRPMs need to get a new source code stream so that you can continue to get security fixes .. or you have to take the newer source code and backport the changes to the Fedora 18 based SRPMS .. or you have to get newer versions of the package and build it against the current CentOS 7 provided shared dependencies, upgrading any dependencies that are too old. THEN you have to rebuild any other packages in CentOS that used the older dependencies from CentOS 7 that you just upgraded. THEN you need to maintain not only the package that you wanted to build the way that you just did .. now you also need to maintain all those dependencies that way .. AND .. you need to maintain all of the new CentOS packages that you had to rebuild based on those dependencies in the same way. That could mean that to add one thing, you now need to maintain 20 packages.
And if you are taking things from Fedora 25 (as an example) to CentOS 7, you need to be concerned about things like .. a different location for kernel install tools .. a different major version of python (python2 vs python3) .. a majorly different version of GNOME and KDE, differences in samba, in NFS, etc. etc.
Again, that is why Red Hat has thousands of engineers to maintain the Enterprise Linux sources.