summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJackie Huang <jackie.huang@windriver.com>2015-12-17 18:40:50 -0800
committerOtavio Salvador <otavio@ossystems.com.br>2016-01-04 09:21:06 -0200
commitdfb21b449dd652b99bc4725796d143e8c9779cd6 (patch)
tree9c52cced2468169891b11703978eb3f26418f8b6
parentec7b984fbd0662b7aa1707f229ab09c555bb2cf6 (diff)
downloadmeta-java-dfb21b449dd652b99bc4725796d143e8c9779cd6.tar.gz
openjdk-8-native: fix improper do_install and PROVIDES
We had: virtual/jar-native provided by fastjar-native virtual/java-native provided by cacao-native and jamvm-native virtual/javac-native provided by ecj-bootstrap-native Then openjdk-8-native added and also provides: virtual/java-native and virtual/javac-native (it also installs ${STAGING_BINDIR_NATIVE}/jar but doesn't add virtual/jar-native in the PROVIDES) which introduces circular dependencies, java-bootstrap-components.bbclass is to avoid the circular dependencies but it's not a correct way since it make two conflicted packages build into the same sysroot: DEPENDS_prepend_class-native = " ecj-bootstrap-native " DEPENDS_prepend_class-target = " virtual/javac-native " virtual/javac-native is provided by openjdk-8-native, and it assumed that ecj-bootstrap-native, fastjar-native and cacao-native/jamvm-native are always built before openjdk-8-native, then in the do_install of penjdk-8-native, it removes them from staging dirs first, then install (create symlinks for) these files in staging dirs directly, which results with empty sstate and builds from sstate cache or builds not in this assumption will fail. The fixes here includes: - Revert "meta-java: rely on well known bootstrap-path" in previous commit to remove the improper java-bootstrap-components.bbclass - Do not let openjdk-8-native provides jar, java and javac, just like what we do in icedtea7-native, which can provides but not to avoid circular dependencies and conflicts. - make cacao-native back to provide virtual/java-native, and ecj-bootstrap-native back to provide virtual/javac-native - Add back provider settings in README. - Remove the update-alternatives in openjdk-8-native, it doesn't work for native package. Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-rw-r--r--README12
-rw-r--r--recipes-core/cacao/cacao_1.6.1.bb2
-rw-r--r--recipes-core/ecj/ecj-bootstrap-native.bb2
-rw-r--r--recipes-core/openjdk/openjdk-8-native.inc13
-rw-r--r--recipes-core/openjdk/openjdk-8-native_72b05.bb26
5 files changed, 18 insertions, 37 deletions
diff --git a/README b/README
index 7658c23..259fa75 100644
--- a/README
+++ b/README
@@ -52,8 +52,16 @@ Main layer maintainers:
52Usage instructions 52Usage instructions
53------------------ 53------------------
54 54
55Since there is a clear bootstrap of the individual java-recipes, there is 55You should define at least the following variables in a distro include file or local.conf
56nothing to configure in conf/local.conf nor your individual distro/$name.conf. 56
57# Possible provider: cacao-initial-native and jamvm-initial-native
58PREFERRED_PROVIDER_virtual/java-initial-native = "cacao-initial-native"
59
60# Possible provider: cacao-native and jamvm-native
61PREFERRED_PROVIDER_virtual/java-native = "jamvm-native"
62
63# Optional since there is only one provider for now
64PREFERRED_PROVIDER_virtual/javac-native = "ecj-bootstrap-native"
57 65
58Simply rely on openjdk-7-jre, openjdk-7, openjdk-8 or openjre-8. 66Simply rely on openjdk-7-jre, openjdk-7, openjdk-8 or openjre-8.
59 67
diff --git a/recipes-core/cacao/cacao_1.6.1.bb b/recipes-core/cacao/cacao_1.6.1.bb
index ce1ffc2..8e212af 100644
--- a/recipes-core/cacao/cacao_1.6.1.bb
+++ b/recipes-core/cacao/cacao_1.6.1.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
5SECTION = "interpreters" 5SECTION = "interpreters"
6 6
7DEPENDS_class-native = "zlib-native libtool-native ecj-initial-native fastjar-native classpath-native bdwgc-native" 7DEPENDS_class-native = "zlib-native libtool-native ecj-initial-native fastjar-native classpath-native bdwgc-native"
8#PROVIDES_class-native = "virtual/java-native" 8PROVIDES_class-native = "virtual/java-native"
9 9
10DEPENDS = "zlib libtool classpath virtual/javac-native bdwgc" 10DEPENDS = "zlib libtool classpath virtual/javac-native bdwgc"
11RPROVIDES_${PN} = "java2-runtime" 11RPROVIDES_${PN} = "java2-runtime"
diff --git a/recipes-core/ecj/ecj-bootstrap-native.bb b/recipes-core/ecj/ecj-bootstrap-native.bb
index 94ce6aa..e159c9d 100644
--- a/recipes-core/ecj/ecj-bootstrap-native.bb
+++ b/recipes-core/ecj/ecj-bootstrap-native.bb
@@ -14,6 +14,8 @@ PR = "r1"
14 14
15DEPENDS = "libecj-bootstrap-native virtual/java-native" 15DEPENDS = "libecj-bootstrap-native virtual/java-native"
16 16
17PROVIDES = "virtual/javac-native"
18
17SRC_URI = "file://ecj.in" 19SRC_URI = "file://ecj.in"
18 20
19S = "${WORKDIR}" 21S = "${WORKDIR}"
diff --git a/recipes-core/openjdk/openjdk-8-native.inc b/recipes-core/openjdk/openjdk-8-native.inc
index 7813ec2..7a37d1a 100644
--- a/recipes-core/openjdk/openjdk-8-native.inc
+++ b/recipes-core/openjdk/openjdk-8-native.inc
@@ -68,15 +68,12 @@ do_compile_append() {
68} 68}
69 69
70do_install() { 70do_install() {
71 rm -rf ${STAGING_LIBDIR_NATIVE}/jvm/${JDK_DIR} 71 mkdir -p ${D}${libdir_jvm}/${JDK_DIR}
72 mkdir -p ${STAGING_LIBDIR_NATIVE}/jvm/${JDK_DIR} 72 cp -rp ${B}/images/j2sdk-image/* ${D}${libdir_jvm}/${JDK_DIR}
73 cp -rp ${B}/images/j2sdk-image/* ${STAGING_LIBDIR_NATIVE}/jvm/${JDK_DIR}
74 73
75# clean up the mess from bootstrap 74 mkdir -p ${D}${bindir}
76 for tool in jar java javac keytool pack200 unpack200 75 for tool in keytool pack200 unpack200
77 do 76 do
78 rm -f ${STAGING_BINDIR_NATIVE}/$tool 77 ln -sf "../lib/jvm/${JDK_DIR}/bin/$tool" ${D}${bindir}/$tool
79
80 ln -sf "../lib/jvm/${JDK_DIR}/bin/$tool" ${STAGING_BINDIR_NATIVE}/$tool
81 done 78 done
82} 79}
diff --git a/recipes-core/openjdk/openjdk-8-native_72b05.bb b/recipes-core/openjdk/openjdk-8-native_72b05.bb
index 6eb40eb..7b20248 100644
--- a/recipes-core/openjdk/openjdk-8-native_72b05.bb
+++ b/recipes-core/openjdk/openjdk-8-native_72b05.bb
@@ -1,28 +1,2 @@
1require openjdk-8-release-72b05.inc 1require openjdk-8-release-72b05.inc
2require openjdk-8-native.inc 2require openjdk-8-native.inc
3
4PROVIDES = "virtual/java-native virtual/javac-native"
5
6inherit update-alternatives
7
8ALTERNATIVE_${PN} = "java javac jar pack200 unpack200 keytool"
9ALTERNATIVE_LINK[java] = "${bindir}/java"
10ALTERNATIVE_TARGET[java] = "${JDK_HOME}/bin/java"
11ALTERNATIVE_PRIORITY[java] = "100"
12ALTERNATIVE_LINK[javac] = "${bindir}/javac"
13ALTERNATIVE_TARGET[javac] = "${JDK_HOME}/bin/javac"
14ALTERNATIVE_PRIORITY[javac] = "100"
15ALTERNATIVE_LINK[jar] = "${bindir}/jar"
16ALTERNATIVE_TARGET[jar] = "${JDK_HOME}/bin/jar"
17ALTERNATIVE_PRIORITY[jar] = "100"
18ALTERNATIVE_LINK[pack200] = "${bindir}/pack200"
19ALTERNATIVE_TARGET[pack200] = "${JDK_HOME}/bin/pack200"
20ALTERNATIVE_PRIORITY[pack200] = "100"
21ALTERNATIVE_LINK[unpack200] = "${bindir}/unpack200"
22ALTERNATIVE_TARGET[unpack200] = "${JDK_HOME}/bin/unpack200"
23ALTERNATIVE_PRIORITY[unpack200] = "100"
24ALTERNATIVE_LINK[keytool] = "${bindir}/keytool"
25ALTERNATIVE_TARGET[keytool] = "${JDK_HOME}/bin/keytool"
26ALTERNATIVE_PRIORITY[keytool] = "100"
27
28# PR = "${INC_PR}.1"