Problem with tomcat6/7-common, default-jre-headless and with make-jpkg created "j2sdk1.7-oracle" packages
Hello,
we are using at our company only Sun-Java/Oracle Java because our Java
Devs need this plattform (I don't know the exact problems but they can't
or won't use OpenJDK).
Problem is that on our servers the openJDK packages are automatically
installed and setup as default java installation even if we installed
OracleJ2SDK before Tomcat7 (and Tomcat7 would be removed with openJDK
removal).
Do you have a good solution for it which can be packaged global?
I think that many peoply have same needs as we have. Thanks.
Here my actual quick-fix for our setup and further hints what seems not
ok from my sight:
I take a further look... make-jpkg creates this package info/provides:
Package: oracle-j2sdk1.7
Version: 1.7.0+update45
Replaces: oracle-j2sdk1.7debian
Provides: j2re1.7, j2sdk1.7, java-browser-plugin, java-compiler,
java-runtime, java-runtime-headless, java-sdk, java-virtual-machine,
java2-compiler, java2-runtime, java2-runtime-headless, java2-sdk
=> seems not so good...
There seems the "provider" for java7-runtime, java7-runtime-headless
and perhaps more missing ?
Same with JRE:
Package: oracle-j2re1.7
Version: 1.7.0+update45
Replaces: oracle-j2re1.7debian
Provides: j2re1.7, java-browser-plugin, java-runtime,
java-runtime-headless, java-virtual-machine, java2-runtime,
java2-runtime-headless
Interesting is the compare to OpenJDK Package:
Package: openjdk-7-jre-headless
Version: 7u25-2.3.10-1~deb7u1
Breaks: icedtea-netx (< 1.4-2), icedtea-netx (< 1.4-2),
openjdk-7-jre-headless (!= 7u25-2.3.10-1~deb7u1)
Replaces: openjdk-7-jre-headless (< 7u25-2.3.10-1~deb7u1)
Provides: java-runtime-headless, java2-runtime-headless,
java5-runtime-headless, java6-runtime-headless, java7-runtime-headless
=> easy solution I finally checked out and it works nice as I see in
my first testing:
Patching the make-jpg to set right dependencies.
Attention: I added here Break/Replaces for the unwanted packages:
default-jre-headless,
openjdk-6-jre-lib,
openjdk-6-jre-headless
--- /usr/share/java-package/j2re.sh.orig 2013-01-15 20:10:26.000000000 +0100
+++ /usr/share/java-package/j2re.sh 2013-10-31 17:20:31.000000000 +0100
@@ -6,8 +6,9 @@
Architecture: any
Depends: \${shlibs:Depends}
Recommends: netbase, libx11-6 | xlibs, libasound2, libgtk1.2
-Provides: java-virtual-machine, java-runtime, java2-runtime,
java-runtime-headless, java2-runtime-headless, java-browser-plugin,
j2re${j2se_release}
-Replaces: ${j2se_package}debian
+Provides: java-virtual-machine, java-runtime, java2-runtime,
java-runtime-headless, java2-runtime-headless, java5-runtime-headless,
java6-runtime-headless, java7-runtime-headless, java-browser-plugin,
j2re${j2se_release}
+Breaks: ${j2se_package} (<< ${j2se_version}), default-jre-headless,
openjdk-6-jre-lib, openjdk-6-jre-headless
+Replaces: ${j2se_package}debian, ${j2se_package} (<= ${j2se_version}),
default-jre-headless, openjdk-6-jre-lib, openjdk-6-jre-headless
Description: $j2se_title
The Java(TM) 2 Runtime Environment contains the Java virtual machine,
runtime class libraries, and Java application launcher that are
--- /usr/share/java-package/j2sdk.sh.orig 2013-01-15 20:10:26.000000000
+0100
+++ /usr/share/java-package/j2sdk.sh 2013-10-31 17:20:43.000000000 +0100
@@ -6,8 +6,9 @@
Architecture: any
Depends: \${shlibs:Depends}
Recommends: netbase, libx11-6 | xlibs, libasound2, libgtk1.2, libstdc++5
-Provides: java-virtual-machine, java-runtime, java2-runtime,
java-browser-plugin, java-compiler, java2-compiler,
java-runtime-headless, java2-runtime-headless, java-sdk, java2-sdk,
j2sdk$j2se_release, j2re$j2se_release
-Replaces: ${j2se_package}debian
+Provides: java-virtual-machine, java-runtime, java2-runtime,
java-browser-plugin, java-compiler, java2-compiler,
java-runtime-headless, java2-runtime-headless, java5-runtime-headless,
java6-runtime-headless, java7-runtime-headless, java-sdk, java2-sdk,
j2sdk$j2se_release, j2re$j2se_release
+Breaks: ${j2se_package} (<< ${j2se_version}), default-jre-headless,
openjdk-6-jre-lib, openjdk-6-jre-headless
+Replaces: ${j2se_package}debian, ${j2se_package} (<= ${j2se_version}),
default-jre-headless, openjdk-6-jre-lib, openjdk-6-jre-headless
Description: $j2se_title
The Java(TM) 2 SDK is a development environment for building
applications, applets, and components that can be deployed on the
I had taken before some further looks into the different packages and it
seems that there also some rearrangement could be helpful ?
Tomcat6/7 needs additional Providers?:
Package: tomcat6-common
Depends: libtomcat6-java (>= 6.0.35-6+deb7u1), default-jre-headless |
java7-runtime-headless | java7-runtime |
java6-runtime-headless | java6-runtime | java5-runtime
Package: tomcat7-common
Depends: libtomcat7-java (>= 7.0.28-4), default-jre-headless |
java6-runtime-headless | java6-runtime | java-6-runtime
=> Here I got a little confused ;) ...
Why has Tomcat6 a java7-runtime / java7-runtime-headless as
dependencies and Tomcat7 not ?
Therefore I first checked for the smallest redefinitions which could be
made to get all dependencies satisified.
=> openjdk-6-jre-headless / openjdk-7-jre-headless
which are in the dependency tree for
java6-runtime-headless / java7-runtime-headless
needs also
Depends: ..., ca-certificates-java, ...
which itself also depends onto:
ca-certificates-java
- Squeeze:
openjdk-6-jre-headless (>= 6b16-1.6.1-2)
OpenJDK Java runtime, using Hotspot JIT (headless)
or java6-runtime-headless
virtual package provided by default-jre-headless,
openjdk-6-jre-headless, sun-java6-jre
- Wheezy:
openjdk-6-jre-headless (>= 6b16-1.6.1-2)
OpenJDK Java runtime, using Hotspot JIT (headless)
or java6-runtime-headless
virtual package provided by default-jre-headless,
openjdk-6-jre-headless, openjdk-7-jre-headless
=> perhaps there should also alternate dependencies to
java7-runtime-headless
and perhaps some other Java packages?
My first ideas was before I found the make-jpg modifikation fix that the
easiest way could be to manipulate the package default-jre-headless
because its in all above dependencies listed.
But I guess that you won't have Sun/Oracle packages there listed
(Sun6 is out of update phase and Oracle license is not compatible) ?
And it seems to work without problem to remove it (fresh installation
not yet tested).
=>
default-jre-headless
- Squeeze:
openjdk-6-jre-headless (>= 6b14)
- Wheezy:
openjdk-6-jre-headless (>= 6b23~pre8-2~)
Bests
Reiner
Reply to: