aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch
blob: 7e0ee4cd2479574b343a1eeffead77974df6159d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Upstream-Status: Pending

update-ca-certificates: find SYSROOT relative to its own location

This makes the script relocatable.

--- ca-certificates-20130119.orig/sbin/update-ca-certificates
+++ ca-certificates-20130119/sbin/update-ca-certificates
@@ -37,11 +37,44 @@ do
   shift
 done

-CERTSCONF=$SYSROOT/etc/ca-certificates.conf
+if [ -z "$SYSROOT" ]; then
+  local_which () {
+    if [ $# -lt 1 ]; then
+      return 1
+    fi
+
+    (
+      IFS=:
+      for entry in $PATH; do
+        if [ -x "$entry/$1" ]; then
+          echo "$entry/$1"
+          exit 0
+        fi
+      done
+      exit 1
+    )
+  }
+
+  case "$0" in
+    */*)
+      sbindir=$(cd ${0%/*} && pwd)
+      ;;
+    *)
+      sbindir=$(cd $(dirname $(local_which $0)) && pwd)
+      ;;
+  esac
+  prefix=${sbindir%/*}
+  SYSROOT=${prefix%/*}
+  if [ ! -d "$SYSROOT/usr/share/ca-certificates" ]; then
+    SYSROOT=
+  fi
+fi
+
 CERTSDIR=$SYSROOT/usr/share/ca-certificates
+CERTSCONF=$SYSROOT/etc/ca-certificates.conf
+ETCCERTSDIR=$SYSROOT/etc/ssl/certs
 LOCALCERTSDIR=$SYSROOT/usr/local/share/ca-certificates
 CERTBUNDLE=ca-certificates.crt
-ETCCERTSDIR=$SYSROOT/etc/ssl/certs

 cleanup() {
   rm -f "$TEMPBUNDLE"