summaryrefslogtreecommitdiffstats
path: root/recipes-core/ca-certificates-java/ca-certificates-java/ca-certificates-java.hook.in
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-core/ca-certificates-java/ca-certificates-java/ca-certificates-java.hook.in')
-rwxr-xr-xrecipes-core/ca-certificates-java/ca-certificates-java/ca-certificates-java.hook.in64
1 files changed, 64 insertions, 0 deletions
diff --git a/recipes-core/ca-certificates-java/ca-certificates-java/ca-certificates-java.hook.in b/recipes-core/ca-certificates-java/ca-certificates-java/ca-certificates-java.hook.in
new file mode 100755
index 0000000..f01fe36
--- /dev/null
+++ b/recipes-core/ca-certificates-java/ca-certificates-java/ca-certificates-java.hook.in
@@ -0,0 +1,64 @@
1#!/bin/sh -eu
2
3# As per the debian package, three cases when we can be called:
4# 1) as part of update-ca-certificates -> add / remove certs as instructed
5# 2) if first time install -> add all certs
6# 3) package update -> do nothing
7# We have no way to easily distinguish between first time install
8# and package update in OE, so the distinction between cases 2)
9# and 3) isn't perfect.
10
11self=$(basename $0)
12jvm_libdir="@@libdir_jvm@@"
13
14if [ -n "${D:-}" ] ; then
15 # called from postinst as part of image build on host
16 if [ -z "${JVM_LIBDIR:-}" ] ; then
17 # should never happen, this is supposed to be passed in
18 echo "$0: no JVM_LIBDIR specified" >&2
19 false
20 fi
21fi
22if [ -n "${JVM_LIBDIR:-}" ] ; then
23 jvm_libdir="${JVM_LIBDIR}"
24fi
25
26for JAVA in icedtea7-native/bin/java \
27 openjdk-8-native/bin/java openjdk-8/bin/java openjre-8/bin/java \
28 ; do
29 if [ -x "${jvm_libdir}/${JAVA}" ] ; then
30 JAVA="${jvm_libdir}/${JAVA}"
31 break
32 fi
33done
34
35if [ ! -x "${JAVA}" ] ; then
36 # shouldn't really happen, as we RDEPEND on java
37 echo "$0: JAVA not found" >&2
38 false
39fi
40
41if [ "${self}" = "ca-certificates-java-hook" ] ; then
42 # case 1) from above
43 # the list of (changed) files is passed via stdin
44 while read input ; do
45 echo "${input}"
46 done
47elif [ -s $D${sysconfdir}/ssl/certs/java/cacerts ] ; then
48 # we were executed explicitly (not via ca-cacertificates hook)
49 # case 3) from above
50 # do nothing, as the trustStore exists already
51 return
52else
53 # we were executed explicitly (not via ca-cacertificates hook)
54 # case 2) from above
55 # the trustStore doesn't exist yet, create it as this is
56 # a first time install (e.g. during image build)
57 find $D${sysconfdir}/ssl/certs -name '*.pem' | \
58 while read filename ; do
59 echo "+${filename}"
60 done
61fi | SYSROOT="${D:-}" ${JAVA} -Xmx64m \
62 -jar ${D:-}@@datadir_java@@/@@JARFILENAME@@ \
63 -storepass changeit
64