Red Hat Bugzilla – Bug 134786
fedora patch prevents correct libsvnjavahl compilation
Last modified: 2007-11-30 17:10:51 EST
Description of problem:
Fedora adds some patches to the subversion build process, rendering
correct javahl compilation impossible without additional
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. install subversion-1.1.0-5.src
2. modify .spec file to include java-hl
The compiled libsvnjavahl-1.so.0.0.0 contains unresolved symbols. This
yields the subclipse component within the Eclipse environment unusable.
libsvnjavahl-1.so.0.0.0 should compile correctly.
Both Eclipse and IBM Java are part of RHEL ; as soon as subversion is
included in RHEL, this will be a major hurdle for subversion inclusion
See bug #116202 (which applies to Fedora/GCJ instead of RHEL/IBMJava).
My diagnose :
- One of the fedora patches (.pie and/or .rpath) modifies
- As a result, during the %build, all $(LINK)'s are replaced with
$(LINK_LIB) in build-outputs.mk ;
- Unfortunately, $(LINK_JAVAHL_CXX) is also replaced ;
- Due to that replacement, 'libsvnjavahl' is linked without -lstdc++,
resulting in unresolved symbols.
FWIW, (being an absolute dilettant in build processes), I would
suggest to change the gen_base.py patch to let it differentiate
between the generic $(LINK) and other, more specific link command
variables such as $(LINK_JAVAHL_CXX).
Created attachment 104831 [details]
Diff between invalid and valid build-outputs.mk
This shows the difference between the valid and invalid build-outputs.mk ; as
build-outputs.mk seems to be created *after* the %prep% in the %build%, I would
not know how to validly include this patch in the .spec.
As such, I guess the .pie and .rpath patches should be modified to cope with
non- $(LINK) linker commands.
For the record : it speaks for itself that the .spec file was modified
to properly cope for javahl compilation :
%configure ... --with-junit=/usr/share/java/junit.jar --enable-javahl
Created attachment 104885 [details]
alternative -pie patch
I've attached an alternative -pie patch here - can you try this with your
changes for JavaHL?
New -pie patch works perfectly ; thank you for the very swift solution.
Would it not prove beneficial to modify the .spec to include an
additional subversion-javahl rpm ?
In that case, an extra dependency to the junit rpm would be nice, as
this would allow for the JavaHL tests to be compiled (and tested, by
means of 'make check-javahl').
Created attachment 104888 [details]
.spec diff to add JavaHL compilation (not including make check-javahl)
We don't ship a JDK -- does this compile/build with GCJ out of the
box? It needs suitable BuildRequires, and it needs to be in a
subpackage too I expect.
RHEL is shipping with a JDK ; I'm using
java-1.4.2-ibm-22.214.171.124-1jpp_8rh.i386.rpm from lacd (Update 3).
As RHEL4 will be based on FC3, and FC2/FC3 is shipped with subversion,
I suppose RHEL will eventually have it, too.
A subpackage would be very nice, though.
(not wanting to look like a spelling buff, but nevertheless one very
minor nitpick : second line in the .pie patch should probably be
'built' instead of 'build').
Well, this is a Fedora bug :) Does Eclipse's Subversion support rely
on this, then?
If you wish have this support in RHEL4, please file an RFE against
RHEL4 and it will be considered for inclusion, giving the
justification on why it's needed.
I spotted the typo too, thanks.
OK, filed bug #135049.
A big thanks for both your much appreciated efforts and a great
product line !
Updated patch included in the 1.1.1-1.1 update.