diff options
author | Jackie Huang <jackie.huang@windriver.com> | 2015-12-17 18:40:50 -0800 |
---|---|---|
committer | Otavio Salvador <otavio@ossystems.com.br> | 2016-01-04 09:21:06 -0200 |
commit | dfb21b449dd652b99bc4725796d143e8c9779cd6 (patch) | |
tree | 9c52cced2468169891b11703978eb3f26418f8b6 /recipes-core | |
parent | ec7b984fbd0662b7aa1707f229ab09c555bb2cf6 (diff) | |
download | meta-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>
Diffstat (limited to 'recipes-core')
-rw-r--r-- | recipes-core/cacao/cacao_1.6.1.bb | 2 | ||||
-rw-r--r-- | recipes-core/ecj/ecj-bootstrap-native.bb | 2 | ||||
-rw-r--r-- | recipes-core/openjdk/openjdk-8-native.inc | 13 | ||||
-rw-r--r-- | recipes-core/openjdk/openjdk-8-native_72b05.bb | 26 |
4 files changed, 8 insertions, 35 deletions
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" | |||
5 | SECTION = "interpreters" | 5 | SECTION = "interpreters" |
6 | 6 | ||
7 | DEPENDS_class-native = "zlib-native libtool-native ecj-initial-native fastjar-native classpath-native bdwgc-native" | 7 | DEPENDS_class-native = "zlib-native libtool-native ecj-initial-native fastjar-native classpath-native bdwgc-native" |
8 | #PROVIDES_class-native = "virtual/java-native" | 8 | PROVIDES_class-native = "virtual/java-native" |
9 | 9 | ||
10 | DEPENDS = "zlib libtool classpath virtual/javac-native bdwgc" | 10 | DEPENDS = "zlib libtool classpath virtual/javac-native bdwgc" |
11 | RPROVIDES_${PN} = "java2-runtime" | 11 | RPROVIDES_${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 | ||
15 | DEPENDS = "libecj-bootstrap-native virtual/java-native" | 15 | DEPENDS = "libecj-bootstrap-native virtual/java-native" |
16 | 16 | ||
17 | PROVIDES = "virtual/javac-native" | ||
18 | |||
17 | SRC_URI = "file://ecj.in" | 19 | SRC_URI = "file://ecj.in" |
18 | 20 | ||
19 | S = "${WORKDIR}" | 21 | S = "${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 | ||
70 | do_install() { | 70 | do_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 @@ | |||
1 | require openjdk-8-release-72b05.inc | 1 | require openjdk-8-release-72b05.inc |
2 | require openjdk-8-native.inc | 2 | require openjdk-8-native.inc |
3 | |||
4 | PROVIDES = "virtual/java-native virtual/javac-native" | ||
5 | |||
6 | inherit update-alternatives | ||
7 | |||
8 | ALTERNATIVE_${PN} = "java javac jar pack200 unpack200 keytool" | ||
9 | ALTERNATIVE_LINK[java] = "${bindir}/java" | ||
10 | ALTERNATIVE_TARGET[java] = "${JDK_HOME}/bin/java" | ||
11 | ALTERNATIVE_PRIORITY[java] = "100" | ||
12 | ALTERNATIVE_LINK[javac] = "${bindir}/javac" | ||
13 | ALTERNATIVE_TARGET[javac] = "${JDK_HOME}/bin/javac" | ||
14 | ALTERNATIVE_PRIORITY[javac] = "100" | ||
15 | ALTERNATIVE_LINK[jar] = "${bindir}/jar" | ||
16 | ALTERNATIVE_TARGET[jar] = "${JDK_HOME}/bin/jar" | ||
17 | ALTERNATIVE_PRIORITY[jar] = "100" | ||
18 | ALTERNATIVE_LINK[pack200] = "${bindir}/pack200" | ||
19 | ALTERNATIVE_TARGET[pack200] = "${JDK_HOME}/bin/pack200" | ||
20 | ALTERNATIVE_PRIORITY[pack200] = "100" | ||
21 | ALTERNATIVE_LINK[unpack200] = "${bindir}/unpack200" | ||
22 | ALTERNATIVE_TARGET[unpack200] = "${JDK_HOME}/bin/unpack200" | ||
23 | ALTERNATIVE_PRIORITY[unpack200] = "100" | ||
24 | ALTERNATIVE_LINK[keytool] = "${bindir}/keytool" | ||
25 | ALTERNATIVE_TARGET[keytool] = "${JDK_HOME}/bin/keytool" | ||
26 | ALTERNATIVE_PRIORITY[keytool] = "100" | ||
27 | |||
28 | # PR = "${INC_PR}.1" | ||