From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.7) Gecko/20050501 Red Hat/1.7.7-1.1.3.4 Description of problem: db4 can no longer be compiled on a free ("free" as in "OSI approved") system; see "Actual results" for the errors. Version-Release number of selected component (if applicable): 4.1.25-8.1 How reproducible: Always Steps to Reproduce: 1. Try to compile db4 on a full and up to date installation of the RHEL sources published on ftp.redhat.com . 2. Fail. Actual Results: # rpmbuild --rebuild db4-4.1.25-8.1.src.rpm [...] checking for javac... javac checking if javac works... configure: error: The Java compiler javac failed (see config.log, check the CLASSPATH?) # echo $CLASSPATH # locate db.jar /usr/share/java/db.jar # export CLASSPATH=/usr/share/java # echo $CLASSPATH /usr/share/java # rpmbuild --rebuild db4-4.1.25-8.1.src.rpm (loops back to same error) Additional info:
Have you tried with gcj and libgcj installed that provide the javac wrapper script?
It's a full install, compiled from source and updated all the way up to db4-U5: # rpm -qa |grep gcj compat-libgcj-devel-7.3-2.96.128 libgcj-3.2.3-52 libgcj-devel-3.2.3-52 libgcj-ssa-3.5ssa-0.20030801.48 libgcj-ssa-devel-3.5ssa-0.20030801.48 compat-libgcj-7.3-2.96.128 If what's needed to compile db4 is not there, then it's not part of the free (as in "OSI-approved") RHEL source distribution. db4 is crucial to rpm and to the entire system, so it should not depend on non-free packages. I'm still not sure it actually does, but if it does we'll need a new bugzilla category "severity: political".
checking for javac... javac checking if javac works... yes checking for jar... jar checking for javac... /usr/bin/javac checking absolute path of javac... /usr/bin/javac checking symlink for /usr/bin/javac... /etc/alternatives/javac checking symlink for /etc/alternatives/javac... /usr/share/java/libgcj-javac-placeholder.sh rpm -qf /usr/share/java/libgcj-javac-placeholder.sh libgcj-3.2.3-52
Can you check if your alternative setup is broken which javac ls -l /etc/alternatives/javac Check rpm --scripts -q libgcj for what should be setup.
Indeed, my java installation was not properly referenced. It also was 1.5, which db4 doesn't agree with. 'rpm -hiv IBMJava2-SDK-1.4.2-1.0.i386.rpm; export PATH=/opt/IBMJava2-142/bin:$PATH' got db4 to compile. The political issue remains though. Bugzilla is not the place to debate it, so I would just like to suggest breaking out db4-java into a separate .src.rpm, so that db4 itself can be compiled on a 100% free (speech and beer) system.
It builds with gcj which is Free Software http://gcc.gnu.org/java/, there is no requirement for a JDK and it builds fine on a 100% free software install of RHEL. Which means no political issue. FSF is happy for gcj to be used. Please remove the IBM JDK (you should build jpackage style packages besides http://jpackage.org/rebuilding.php) and try building with the gcj wrapper scripts. This is working fine for me.