[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: