FS#27991 - [jdk7-openjdk] Install Shared Objects (SO) in /usr/lib
Attached to Project:
Arch Linux
Opened by Hugo Osvaldo Barrera (hobarrera) - Thursday, 19 January 2012, 06:46 GMT
Last edited by Andreas Radke (AndyRTR) - Saturday, 03 March 2012, 15:12 GMT
Opened by Hugo Osvaldo Barrera (hobarrera) - Thursday, 19 January 2012, 06:46 GMT
Last edited by Andreas Radke (AndyRTR) - Saturday, 03 March 2012, 15:12 GMT
|
Details
Description:
Libraries (Shared Objects) for jdk7-openjdk are installed into /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/. Having them in /usr/lib would be far more practical; currently, when running a java application that requires one of these SO, one needs to export LD_LIBRARY_PATH=/usr/lib/jvm/java-7-openjdk/jre/lib/amd64 first. Having them in /usr/lib would avoid this. /usr/lib is also there for exactly these sort of files; the is no reason to create a lib directory inside /usr/lib/jvm/java-7-openjdk/jre/ and move these libraries there. Fixing this would make running java applications a tiny bit easier, and also keep the filesystem a bit tidier. |
This task depends upon
Closed by Andreas Radke (AndyRTR)
Saturday, 03 March 2012, 15:12 GMT
Reason for closing: Won't fix
Additional comments about closing: such major change would need to be done upstream.
Saturday, 03 March 2012, 15:12 GMT
Reason for closing: Won't fix
Additional comments about closing: such major change would need to be done upstream.
The first example that comes to mind is minecraft, and some other applications that load their own SO, which, in turn, depend on the ones mentioned here.
You don't take into account this use case: a system can have few different installed JDKs. A common way is to supply needed JAVA_HOME in (or for) startup applications' scripts. These scripts are who must accomplish all needed work basing on JAVA_HOME.
Just as several JDKs can be installed at the same time, the same can happen with any other package containing a file in /usr/lib. The same is also true for other applications (I can have two versions of python installed, but only one will be /usr/bin/python).
That's really no excuse for _not_ having one as default.
I'm not trying to complicate thing, on the contrary, I want to make things easier to run.
The average doesn't know that he needs to export LD_LIBRARY_PATH in order to run random app/game he just downloaded. I actually had a hard time finding the info myself when I downloaded minecraft and a couple of other games, and I'm a java developer.
1. At this case expectation is a KISS.
2. At this case uniform approach to all installed jdk/jre is a KISS.
You are trying to make things easier for the only application. I'm strongly sure it is more appropriate to make this application to fit reality.
I'm also a java developer starting from java 1.2, and I expect more problems in your approach rather at current state.
It's not ONE application, it's several (all games, for sure).
Game developers can't guess where to search for these files/start creating scripts for every os/distro. Heck, most work fine out-of-the-box in mac or even windows by just double clicking them. But here, we keep *SOME* libs on a separate directory for "tradition", and the game just can't guess where they are.
But, if "tradition" and the ability to have several JDKs installed is more important, I guess you can close this bug.
Probably another way is closer to golden compromise: jdk installation script can set JAVA_HOME.
On the other hand, it may make life easier for packagers, since THEY could write scripts that use this value to make them JRE-agnostic.
So if there's no further strong argument why it would be really needed I will close this with "won't implement". If you think it should be done for all distributions ask upstream on the
distro-pkg-dev@openjdk.java.net mailing list.