FS#13071 - soprano 2.2.1-1 should depend on java-runtime

Attached to Project: Arch Linux
Opened by xduugu (xduugu) - Saturday, 31 January 2009, 16:32 GMT
Last edited by Pierre Schmitz (Pierre) - Friday, 27 February 2009, 15:32 GMT
Task Type Bug Report
Category Packages: Testing
Status Closed
Assigned To Pierre Schmitz (Pierre)
Andreas Radke (AndyRTR)
Andrea Scarpino (BaSh)
Geoffroy Carrier (gcarrier)
Architecture All
Severity Medium
Priority Normal
Reported Version None
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 19
Private No

Details

Description:
soprano 2.2.1-1 should depend only on java-runtime, not on openjdk6.

Additional info:
$ pacman -S soprano
resolving dependencies...
looking for inter-conflicts...
:: openjdk6 conflicts with jdk. Remove jdk? [Y/n] n
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: openjdk6: conflicts with jdk


Steps to reproduce:
Installing soprano with installed jdk/jre and not replacing jdk/jre with openjdk6.
This task depends upon

Closed by  Pierre Schmitz (Pierre)
Friday, 27 February 2009, 15:32 GMT
Reason for closing:  Fixed
Additional comments about closing:  kind of ;-)
Comment by Pierre Schmitz (Pierre) - Saturday, 31 January 2009, 16:46 GMT
The point is that the other packages which provide java-runtime (like gcj, eclipse...) do not work with soprano.
Comment by xduugu (xduugu) - Saturday, 31 January 2009, 18:56 GMT
I think I actually don't need soprano but it's an dependency of kdelibs. The testing package of soprano makes it impossible for me to use any kde programm since I need at least one program which doesn't work with openjdk6.

Is it then possible to make openjdk6 an optional dependency or does soprano work only with the java backend?
Comment by Cody Maloney (maloney) - Sunday, 01 February 2009, 04:56 GMT
Would it be possible to just make it so that either jdk or openjdk are required, seeing as they do the same thing. If it's not possible to do an exclusive or requirement, then it seems like it should be marked as a feature request for the ABS.
Comment by Xavier (shining) - Sunday, 01 February 2009, 17:06 GMT
I think you can keep the depends on java-runtime and add conflicts for the providers of java-runtime which do not work (gcj, eclipse...).
That way, jre or openjdk can both be used, but not gcj or eclipse.
Comment by Daan (semerkhet) - Tuesday, 03 February 2009, 17:22 GMT
I have the exact same problem with soprano. I cannot remove soprano because kdelibs is depending on it.
Comment by Pierre Schmitz (Pierre) - Wednesday, 04 February 2009, 11:13 GMT
OK, I assigned the Java-Maintainers, too. This cannot be solved in soprano itself. ATM soprano only runs with openjdk6. The packages that provide java-runtime are not really compatible atm. There are several problems:

* They are installed to different paths
* The libjvm.so lib is not covered by ld.conf
* The profile in /etc/profile.d have different names

Point two is the most important one.

The affected packages are:
* openjdk6
* java-gcj-compat (is this really ABI compatible to the other two? If not it should not provide java-runtime)
* jre
Comment by Xavier (shining) - Wednesday, 04 February 2009, 11:29 GMT
> * java-gcj-compat (is this really ABI compatible to the other two? If not it should not provide java-runtime)

If not, versioned provisions could be used. For example :
java-gcj-compat provides java-runtime=5
openjdk6 and jre provide java-runtime=6

soprano can then depend on java-runtime=6 or java-runtime>=6
Comment by Jakub Schmidtke (tanis) - Wednesday, 04 February 2009, 16:20 GMT
Isn't it possible to allow instalaltion of openjdk6 next to jre? I don't mind having openjdk installed as well, I just really really need to have Sun's JRE installed :|
But the best option would probably be to have soprano accept either jre OR openjdk6 as java dependency...
Comment by Andreas Radke (AndyRTR) - Thursday, 05 February 2009, 20:47 GMT
OpenJDK6 and Sun's JRE should be 100% compatible. So it _should_ work with both and user should have the choice which one they want to use. So I'd like to stay with java-runtime wherever possible.

If it's proven that another java-runtime, e.g. gcj doesn't work please make it conflict and file a bug against it (best way upstream). Anyway Jan and me were already thinking about dropping gcj/java-compat completely). We'll see where java development goes.
Comment by Pierre Schmitz (Pierre) - Thursday, 05 February 2009, 22:09 GMT
No, as I said before the packages of openjdk6 and jre are not compatible. So there is no choice until the packages are fixed.

And yes, gcj can be dropped; at least it should not provide java-runtime.
Comment by André Fettouhi (A.Fettouhi) - Thursday, 12 February 2009, 19:05 GMT
Same problem here and I need jre and jdk because openjdk doesn't work with my internet banking and I need that.

Regards

André
Comment by Bruno Tsubouchi Yporti (yportilog) - Thursday, 12 February 2009, 20:47 GMT
If OpenJDK6 is default on Archlinux, then add provides=('openjdk6') on JDK PKGBUILD.
Comment by Jan de Groot (JGC) - Thursday, 12 February 2009, 21:03 GMT
openjdk is a java6 runtime/development kit, which is default on archlinux. It makes no sense to provide a specific package when we already agreed about the java-environment and java-runtime provides. It makes sense to provide java-runtime=6 and java-environment=6 on these packages while java-gcj-compat provides java-environment=5 though. If a package won't run on gcj, it should depend on java-runtime=6 then.
Comment by Nezmer (Nezmer) - Friday, 13 February 2009, 08:34 GMT
Just wanted to add that gcj should be dropped . I don't think It's even compatible with Java 5 . The last time I checked It didn't support the Scanner class (needed to get user input easily) .
Comment by Sergio (SergioPR) - Friday, 13 February 2009, 11:36 GMT
Same problem here :(
I ran 'pacman -Syu' a few hours ago and I had to remove jdk and jre packages, as soprano has to be updated and it now needs openjdk6.
Comment by Ajay (ashyanbhog) - Friday, 13 February 2009, 12:49 GMT
openoffice package or something other package is really unhappy with openjdk6. Can Soprano itself be made optional dependency for Kde?
Comment by Pierre Schmitz (Pierre) - Friday, 13 February 2009, 13:23 GMT
As I said: This cannot be fixed within the soprano package. jre and/or openjdk need to be fixed.
Comment by Vlad George (DonVla) - Friday, 13 February 2009, 14:21 GMT
jbidwatcher also does not work with openjdk.
+1 for soprano as optdepend.
i actually never used it. is it mandatory?
Comment by Fabian Walther (Namru) - Friday, 13 February 2009, 16:59 GMT
as shining describe
please let soprano depend on java-runtime=6 or java-runtime>=6

i've added an comment to the jre and jdk package http://aur.archlinux.org/packages.php?ID=6118 and http://aur.archlinux.org/packages.php?ID=6121
that gcarrier should add a fix for the jre/jdk problem with soprano
/opt/java/jre/lib/amd64/server to /etc/ld.so.conf (on arch64) or /opt/java/jre/lib/i386/server (on 32 bit arch) an run ldconfig

with this modification soprano, nepomuk and strigi service working fine for me.
Comment by Paul Mattal (paul) - Saturday, 14 February 2009, 14:53 GMT
Is Sun not still the authority on the Java language? If so, JREs that are not 100% compatible with Sun's (bugs aside) should not provide java-runtime. To Pierre's point, they're simply not interchangeable.

To Andreas's point, it sounds to me like openjdk6 tries for and mostly achieves 100% compatibility with Sun JRE. If so, users should have a choice to use one or the other, and bugs should be reported upstream to be fixed by openjdk6.

To Fabian's suggestion, we should probably version the java-runtime provision so we can differentiate between things that provide differing levels of Java support (5, 6).

I'm happy to help out with the legwork making something happen to make this all better, if we can agree on the course of action.
Comment by Xavier (shining) - Saturday, 14 February 2009, 18:06 GMT
If  FS#13275  and  FS#13276  are implemented, then this bug can be fixed by letting soprano depend on java-runtime>=6
Comment by Xavier (shining) - Saturday, 14 February 2009, 22:59 GMT
Pierre, please have a look at JGC's question : http://bugs.archlinux.org/task/13275#comment39493 :)
Comment by Andreas Radke (AndyRTR) - Sunday, 15 February 2009, 14:49 GMT
 FS#13276  done.
Comment by Xavier (shining) - Sunday, 15 February 2009, 15:13 GMT
Pierre, why do you need to source /etc/profile.d/openjdk6.sh?
I am suspecting it might be a problem on your system if /etc/profile isn't being sourced properly by your shell.
So jre and jdk provide a file in profile.d which should be sourced properly by /etc/profile, they don't need to have the same names. And these jre/jdk profiles should export JAVA_HOME properly so that ld.so.conf does not need to be affected.

I cannot check now, but I believe this line could be removed : . /etc/profile.d/openjdk6.sh
And the dependencies should be changed to :
depends=('qt' 'clucene' 'java-runtime>=6')
makedepends=('cmake' 'pkgconfig' 'java-environment>=6')
Comment by Eric Le Bras (elb) - Monday, 16 February 2009, 09:52 GMT
oracle-sqldeveloper explicitly depends on sun jdk.

Until openjdk6 achieves 100% compatibility, would'nt it be more desirable to have both openjdk6 and sun jdk don't conflict, and temporarily remove java-runtime and java-environment provisions from openjdk6 ?

Then if soprano explicitly depends on openjdk6, it won't conflict with other packages which depend on sun jdk.
Comment by Antek Aduszkiewicz (senjin) - Saturday, 21 February 2009, 21:51 GMT
I'm not sure if I post at the right place, but: Why soprano 2.2.1-1 is put into extra if it still has unsolved bug that prevents user from upgrading the whole system?!
Comment by Pierre Schmitz (Pierre) - Saturday, 21 February 2009, 22:17 GMT
Please read the postings above. There is nothing wron with soprano. In fact the version which had a depends to java-runtime was kind of broken because it would have only worked with openjdk. But till now there is nor response from the jre-maintainer. So I would assume clsoing this with "not a bug" or "won't fix" is best.
Comment by Geoffroy Carrier (gcarrier) - Sunday, 22 February 2009, 00:57 GMT
I see no appropriate response here, as this has nothing to do with the current state of community/jre. soprano should depend on java-runtime, EVENTUALLY java-runtime>=6.
Comment by Pierre Schmitz (Pierre) - Monday, 23 February 2009, 17:15 GMT
OK, this is going nowhere. Let's sum things up:
* There is nothing wrong with the soprano pacakge atm.
* Soprano has to depend on openjdk6; its the only supported and working java runtime in Arch (jre is in community)
* Changing the dep to just java-runtime does not solve anything as long as openjdk and jre are not compatible. (and gcj is removed)
** Remember: This is a runtime incompatibility; of course one can build and then run soprano with jre

So, it would be ncie if people would start thinking about "fixing" openjdk or jre to solve this problem instead of repeating over and over again that soprano is the problem here.

Of course, if you have another idea to fix this within soprano (without providing different packages for each java-runtime) I would have a look at it.
Comment by Geoffroy Carrier (gcarrier) - Monday, 23 February 2009, 22:40 GMT
> OK, this is going nowhere. Let's sum things up:
> * There is nothing wrong with the soprano pacakge atm.

Yes, it conflicts with any java runtime provider other than openjdk6 (whevever they come from, whatever they are).

> * Soprano has to depend on openjdk6; its the only supported and working java runtime in Arch (jre is in community)

No it doesn't. It can depend on java-runtime, which is the only supported and working abstraction mechanism for java runtime in Arch.

> * Changing the dep to just java-runtime does not solve anything as long as openjdk and jre are not compatible. (and gcj is removed)

openjdk and jre should be compatible; doesn't soprano work with jre? If not, what can I do?
That doesn't change the fact that incompatibility between java apps (like soprano, which partially use java) and jre are a jre bug, and doesn't affect soprano.

> ** Remember: This is a runtime incompatibility; of course one can build and then run soprano with jre

Maybe I didn't understand, finally. You can't compile it for both openjdk6 and jre?

> So, it would be ncie if people would start thinking about "fixing" openjdk or jre to solve this problem instead of repeating over and over again that soprano is the problem here.

What can I do?

> Of course, if you have another idea to fix this within soprano (without providing different packages for each java-runtime) I would have a look at it.

Well, in a first time you could make openjdk6 an option dependency for soprano... As soprano seems to be a dependency for KDE, I'd rather see KDE working 99% when jre is installed instead of this conflict.

If there is any solution requiring (limited) changes in jre, I'd LOVE to hear about it.
Comment by Xavier (shining) - Tuesday, 24 February 2009, 07:31 GMT
See  FS#13275 
Comment by Andreas Radke (AndyRTR) - Tuesday, 24 February 2009, 15:33 GMT
Beeing the openjdk maintainer I have to say:

Make soprano depend on java-runtime(>=foo if known) if it's known to work with any java runtime providing this. If it's known to be broken with anything else than the official openjdk6 pkg I think it's right to strictly depend on it. As this seem to be the case here I think there should be a new bug opened for Sun jre - best place would be upstream (we would close it here).
Comment by Jan de Groot (JGC) - Tuesday, 24 February 2009, 17:49 GMT
I just committed a fix to svn trunk for this. Soprano is actually the only package I know that links directly to libjvm.so, all other applications and/or I've seen use dlopen, use a script or are installed in the JAVA_HOME/something/lib prefix. The hack I applied to the soprano PKGBUILD hardcodes both the jre and the openjdk library paths into the sesame2 backend. Please try to build this package with openjdk and confirm if it runs with jre.
Comment by Pierre Schmitz (Pierre) - Tuesday, 24 February 2009, 19:52 GMT
It looks evil, but it does work. I also reenabled the redland backend and made java optional. (even thow the redland backend is too slow) Maybe we can dsitribute separate packages when pacman 3.3 is released.

Loading...