Rebuild Troubles

With every rebuild, you run into some problems. Some problems are because you did something, some are because packagers did something. This page is about problems in packages, that anyone who is trying to do a rebuild from scratch will most likely run into.

OpenJDK depends on itself
Both java-1.6.0-openjdk and java-1.7.0-openjdk depend on themselves to build.

  • x86_64:  No problem.  Just build it initially off S.L. or CentOS.
  • i686, arm - java-1.7.0-openjdk: No problem.  Just build it it initially off Fedora 19
  • i686, arm - java-1.6.0-openjdk: Problem.  java-1.6.0-openjdk hasn't been in Fedora since Fedora 16.  And although the java-1.6.0-openjdk from Fedora installs on both i686 and arm, it doesn't provide the right things to satisfy the dependencies.Solution:
    1. Setup a build environment for both i686 and arm, where you can manually add packages and run rpm commands.
    2. Install all the other dependencies, and then install the java-1.6.0-openjdk from Fedora 16.
    3. Build your java-1.6.0-openjdk package with the -nodeps options.  It will build correctly.
    4. Then use the package you just built, to fulfill your dependency when build your official package.

esc depends on xulrunner  24.4
No it doesn't you protest. It doesn't say that.

But if you look through the spec file you find that it is setting geckoversion, and then using that to determine the path for your xulrunner libraries.

Solution:

  • Make sure you compile, and keep around xulrunner 24.4.

nss and nss-softokn will not build on arm
Actually, it will. It even passes all the tests. But there is a bug in the spec file so after everything is compiled, and all the tests run, it fails on a small typo.

Solution:

Several Packages are set to build on x86_64 only
I can understand why RHEL would do this. They are only planning on this being a x86_64 release, and some packages might build 32 bit packages in their build system, so they set the spec file to build for x86_64 only.

Solution:

  • Change the spec file to build for i386 and arm
  • See our “Packages that we changed” section.

 

For x86_64 rebuilds, you might be tempted to do your first rebuild off a release already done.  This works for most packages, but not all.

Packages that build on F19 (Nothing newer)

  • pacemaker-1.1.10-29.el7
  • perl-Module-Load-Conditional-0.54-2.el7
  • PyQt4-4.10.1-12.el7

Packages that build on 7 RC1 (nothing newer)

  • anaconda-19.31.79-1
  • esc-1.1.0-27.el7