Cross-building RHEL and SLES rpm's from Ubuntu?

Panu Matilainen pmatilai at laiskiainen.org
Wed Mar 14 10:06:06 UTC 2012


On 03/02/2012 12:10 AM, Dan Stromberg wrote:
> Is it practical to build rpms for RHEL 6.0 and SLES 11 SP1, by building one
> or two older versions of rpmbuild on Ubuntu 11.04?

Whether it's possible depends on the package, but practical it is 
probably not even if possible.

>
> RHEL appears to use rpm-build-4.8.0-12.
>
> SLES appears to use rpm-build-4.4.2.3-37.16.37.
>
> Are they both on the same side of the main rpm fork?
> http://en.wikipedia.org/wiki/RPM_Package_Manager#Forks
>
> Do these distributions include any patches in their respective rpm-build
> SRPM's that might complicate matters?

Both are from rpm.org origin, but include largish number of patches that 
can and do affect compatibility in some cases.

> Can we reasonably hope that we can grab
> http://rpm.org/wiki/Releases/4.4.2.3 (since
> it's the older of the two), build it once on Ubuntu 11.04, and then build
> compatible rpm's for both RHEL and SLES?

All rpm >= 4.x versions in the upstream default configuration produce 
packages that are compatible with any rpm >= 4.x version, as long as 
feature set used by the build and the package is limited to the lowest 
common denominator. Distros can and do however enable features in their 
default configuration that cause incompatibilities especially to older 
rpm versions. The other other, at least as big issue is that package 
"cross-built" on another distro (be it Ubuntu or something else) often 
end up depending on libraries and their versions that are not available 
on the target distro. At that point it doesn't matter whether the 
package format is compatible from rpm POV, the package wont be 
installable and/or runnable anyway.

Generally it's best (and easiest, really) to build packages on the 
targeted distro. You might want to look at Suse's Open Build Service 
(http://openbuildservice.org/) for this.

	- Panu -


More information about the Rpm-list mailing list