Hex Artifact Content

Artifact b0d5bd6980a858603ce74dded2de8916a7e24ad3:


0000: 23 21 20 2f 62 69 6e 2f 62 61 73 68 0a 0a 66 75  #! /bin/bash..fu
0010: 6e 63 74 69 6f 6e 20 73 65 74 75 70 5f 74 63 6c  nction setup_tcl
0020: 20 28 29 20 7b 0a 09 6c 6f 63 61 6c 20 76 65 72   () {..local ver
0030: 73 20 65 6e 76 66 69 6c 65 0a 0a 09 66 6f 72 20  s envfile...for 
0040: 76 65 72 73 20 69 6e 20 22 24 40 22 3b 20 64 6f  vers in "$@"; do
0050: 0a 09 09 65 6e 76 66 69 6c 65 3d 22 24 7b 50 52  ...envfile="${PR
0060: 4f 4a 52 4f 4f 54 44 49 52 7d 2f 70 6c 61 74 66  OJROOTDIR}/platf
0070: 6f 72 6d 2e 6d 61 67 69 63 2e 65 6e 76 2d 24 7b  orm.magic.env-${
0080: 76 65 72 73 7d 22 0a 0a 09 09 69 66 20 5b 20 21  vers}"....if [ !
0090: 20 2d 66 20 22 24 7b 65 6e 76 66 69 6c 65 7d 22   -f "${envfile}"
00a0: 20 5d 3b 20 74 68 65 6e 0a 09 09 09 63 6f 6e 74   ]; then....cont
00b0: 69 6e 75 65 0a 09 09 66 69 0a 0a 09 09 73 6f 75  inue...fi....sou
00c0: 72 63 65 20 22 24 7b 65 6e 76 66 69 6c 65 7d 22  rce "${envfile}"
00d0: 0a 0a 09 09 62 72 65 61 6b 0a 09 64 6f 6e 65 0a  ....break..done.
00e0: 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 75  }..function setu
00f0: 70 5f 74 63 6c 38 35 20 28 29 20 7b 0a 09 73 65  p_tcl85 () {..se
0100: 74 75 70 5f 74 63 6c 20 38 2e 35 20 38 2e 34 0a  tup_tcl 8.5 8.4.
0110: 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 75  }..function setu
0120: 70 5f 74 63 6c 38 34 20 28 29 20 7b 0a 09 73 65  p_tcl84 () {..se
0130: 74 75 70 5f 74 63 6c 20 38 2e 34 20 38 2e 35 0a  tup_tcl 8.4 8.5.
0140: 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 5f  }..function not_
0150: 70 6c 61 74 66 6f 72 6d 73 20 28 29 20 7b 0a 09  platforms () {..
0160: 6c 6f 63 61 6c 20 70 6c 61 74 66 6f 72 6d 0a 0a  local platform..
0170: 09 66 6f 72 20 70 6c 61 74 66 6f 72 6d 20 69 6e  .for platform in
0180: 20 22 24 40 22 3b 20 64 6f 0a 09 09 69 66 20 5b   "$@"; do...if [
0190: 20 22 24 7b 50 4c 41 54 46 4f 52 4d 7d 22 20 3d   "${PLATFORM}" =
01a0: 20 22 24 7b 70 6c 61 74 66 6f 72 6d 7d 22 20 5d   "${platform}" ]
01b0: 3b 20 74 68 65 6e 0a 09 09 09 72 6d 20 2d 72 66  ; then....rm -rf
01c0: 20 6f 75 74 0a 0a 09 09 09 65 78 69 74 20 30 0a   out.....exit 0.
01d0: 09 09 66 69 0a 09 64 6f 6e 65 0a 7d 0a 0a 66 75  ..fi..done.}..fu
01e0: 6e 63 74 69 6f 6e 20 6f 6e 6c 79 5f 70 6c 61 74  nction only_plat
01f0: 66 6f 72 6d 73 20 28 29 20 7b 0a 09 6c 6f 63 61  forms () {..loca
0200: 6c 20 70 6c 61 74 66 6f 72 6d 0a 0a 09 66 6f 72  l platform...for
0210: 20 70 6c 61 74 66 6f 72 6d 20 69 6e 20 22 24 40   platform in "$@
0220: 22 3b 20 64 6f 0a 09 09 69 66 20 5b 20 22 24 7b  "; do...if [ "${
0230: 50 4c 41 54 46 4f 52 4d 7d 22 20 3d 20 22 24 7b  PLATFORM}" = "${
0240: 70 6c 61 74 66 6f 72 6d 7d 22 20 5d 3b 20 74 68  platform}" ]; th
0250: 65 6e 0a 09 09 09 72 65 74 75 72 6e 20 30 0a 09  en....return 0..
0260: 09 66 69 0a 09 64 6f 6e 65 0a 0a 09 72 6d 20 2d  .fi..done...rm -
0270: 72 66 20 6f 75 74 0a 0a 09 65 78 69 74 20 30 0a  rf out...exit 0.
0280: 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 6f 6e 6c 79  }..function only
0290: 5f 70 6c 61 74 66 6f 72 6d 73 5f 72 65 67 65 78  _platforms_regex
02a0: 70 20 28 29 20 7b 0a 09 6c 6f 63 61 6c 20 70 6c  p () {..local pl
02b0: 61 74 66 6f 72 6d 5f 72 65 0a 0a 09 66 6f 72 20  atform_re...for 
02c0: 70 6c 61 74 66 6f 72 6d 5f 72 65 20 69 6e 20 22  platform_re in "
02d0: 24 40 22 3b 20 64 6f 0a 09 09 69 66 20 65 63 68  $@"; do...if ech
02e0: 6f 20 22 24 7b 50 4c 41 54 46 4f 52 4d 7d 22 20  o "${PLATFORM}" 
02f0: 7c 20 67 72 65 70 20 2d 2d 20 22 24 7b 70 6c 61  | grep -- "${pla
0300: 74 66 6f 72 6d 5f 72 65 7d 22 20 3e 2f 64 65 76  tform_re}" >/dev
0310: 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 09 09 72  /null; then....r
0320: 65 74 75 72 6e 20 30 0a 09 09 66 69 0a 09 64 6f  eturn 0...fi..do
0330: 6e 65 0a 0a 09 72 6d 20 2d 72 66 20 6f 75 74 0a  ne...rm -rf out.
0340: 0a 09 65 78 69 74 20 30 0a 7d 0a 0a 66 75 6e 63  ..exit 0.}..func
0350: 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 20 28 29  tion download ()
0360: 20 7b 0a 09 6c 6f 63 61 6c 20 75 72 6c 20 66 69   {..local url fi
0370: 6c 65 0a 0a 09 66 69 6c 65 3d 22 24 31 22 0a 09  le...file="$1"..
0380: 75 72 6c 3d 22 24 32 22 0a 0a 09 69 66 20 5b 20  url="$2"...if [ 
0390: 2d 73 20 22 24 7b 66 69 6c 65 7d 22 20 5d 3b 20  -s "${file}" ]; 
03a0: 74 68 65 6e 0a 09 09 72 65 74 75 72 6e 20 30 0a  then...return 0.
03b0: 09 66 69 0a 0a 09 72 6d 20 2d 66 20 22 24 7b 66  .fi...rm -f "${f
03c0: 69 6c 65 7d 2e 74 6d 70 22 20 22 24 7b 66 69 6c  ile}.tmp" "${fil
03d0: 65 7d 22 0a 0a 09 69 66 20 65 63 68 6f 20 22 24  e}"...if echo "$
03e0: 7b 75 72 6c 7d 22 20 7c 20 67 72 65 70 20 27 5e  {url}" | grep '^
03f0: 68 74 74 70 73 3a 2f 2f 27 20 3e 2f 64 65 76 2f  https://' >/dev/
0400: 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 09 77 67 65  null; then...wge
0410: 74 20 2d 2d 63 61 2d 63 65 72 74 69 66 69 63 61  t --ca-certifica
0420: 74 65 3d 27 2e 2e 2f 63 65 72 74 73 2e 70 65 6d  te='../certs.pem
0430: 27 20 2d 4f 20 22 24 7b 66 69 6c 65 7d 2e 74 6d  ' -O "${file}.tm
0440: 70 22 20 22 24 7b 75 72 6c 7d 22 20 7c 7c 20 72  p" "${url}" || r
0450: 65 74 75 72 6e 20 31 0a 09 65 6c 73 65 0a 09 09  eturn 1..else...
0460: 77 67 65 74 20 2d 4f 20 22 24 7b 66 69 6c 65 7d  wget -O "${file}
0470: 2e 74 6d 70 22 20 22 24 7b 75 72 6c 7d 22 20 7c  .tmp" "${url}" |
0480: 7c 20 72 65 74 75 72 6e 20 31 0a 09 66 69 0a 0a  | return 1..fi..
0490: 09 6d 76 20 22 24 7b 66 69 6c 65 7d 2e 74 6d 70  .mv "${file}.tmp
04a0: 22 20 22 24 7b 66 69 6c 65 7d 22 0a 7d 0a 0a 66  " "${file}".}..f
04b0: 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64  unction download
04c0: 5f 73 72 63 20 28 29 20 7b 0a 09 69 66 20 5b 20  _src () {..if [ 
04d0: 21 20 2d 66 20 22 24 7b 53 52 43 7d 22 20 2d 61  ! -f "${SRC}" -a
04e0: 20 2d 6e 20 22 24 7b 53 52 43 7d 22 20 2d 61 20   -n "${SRC}" -a 
04f0: 2d 6e 20 22 24 7b 53 52 43 55 52 4c 7d 22 20 5d  -n "${SRCURL}" ]
0500: 3b 20 74 68 65 6e 0a 09 09 6d 6b 64 69 72 20 2d  ; then...mkdir -
0510: 70 20 22 24 28 64 69 72 6e 61 6d 65 20 22 24 7b  p "$(dirname "${
0520: 53 52 43 7d 22 29 22 20 3e 2f 64 65 76 2f 6e 75  SRC}")" >/dev/nu
0530: 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a 0a  ll 2>/dev/null..
0540: 09 09 64 6f 77 6e 6c 6f 61 64 20 22 24 7b 53 52  ..download "${SR
0550: 43 7d 22 20 22 24 7b 53 52 43 55 52 4c 7d 22 20  C}" "${SRCURL}" 
0560: 7c 7c 20 65 78 69 74 20 31 0a 09 66 69 0a 7d 0a  || exit 1..fi.}.
0570: 0a 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63  .function extrac
0580: 74 5f 73 72 63 20 28 29 20 7b 0a 09 72 6d 20 2d  t_src () {..rm -
0590: 72 66 20 62 75 69 6c 64 0a 09 6d 6b 64 69 72 20  rf build..mkdir 
05a0: 62 75 69 6c 64 0a 0a 09 28 0a 09 09 63 64 20 62  build...(...cd b
05b0: 75 69 6c 64 2f 20 7c 7c 20 65 78 69 74 20 31 0a  uild/ || exit 1.
05c0: 0a 09 09 67 7a 69 70 20 2d 64 63 20 22 2e 2e 2f  ...gzip -dc "../
05d0: 24 7b 53 52 43 7d 22 20 7c 20 74 61 72 20 2d 78  ${SRC}" | tar -x
05e0: 66 20 2d 0a 09 09 63 64 20 22 24 7b 42 55 49 4c  f -...cd "${BUIL
05f0: 44 44 49 52 7d 22 20 7c 7c 20 65 78 69 74 20 31  DDIR}" || exit 1
0600: 0a 09 29 20 7c 7c 20 65 78 69 74 20 31 0a 7d 0a  ..) || exit 1.}.
0610: 0a 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 5f  .function apply_
0620: 70 61 74 63 68 65 73 20 28 29 20 7b 0a 09 6c 6f  patches () {..lo
0630: 63 61 6c 20 70 61 74 63 68 72 6f 6f 74 20 70 61  cal patchroot pa
0640: 74 63 68 64 69 72 20 70 61 74 63 68 66 69 6c 65  tchdir patchfile
0650: 73 20 70 61 74 63 68 66 69 6c 65 20 69 64 78 0a  s patchfile idx.
0660: 0a 09 70 61 74 63 68 72 6f 6f 74 3d 22 24 28 70  ..patchroot="$(p
0670: 77 64 29 2f 70 61 74 63 68 65 73 22 0a 0a 09 66  wd)/patches"...f
0680: 6f 72 20 70 61 74 63 68 64 69 72 20 69 6e 20 22  or patchdir in "
0690: 24 7b 70 61 74 63 68 72 6f 6f 74 7d 2f 61 6c 6c  ${patchroot}/all
06a0: 22 20 22 24 7b 70 61 74 63 68 72 6f 6f 74 7d 2f  " "${patchroot}/
06b0: 24 7b 56 45 52 53 7d 22 3b 20 64 6f 0a 09 09 75  ${VERS}"; do...u
06c0: 6e 73 65 74 20 70 61 74 63 68 66 69 6c 65 73 0a  nset patchfiles.
06d0: 0a 09 09 69 66 20 5b 20 2d 66 20 22 24 7b 70 61  ...if [ -f "${pa
06e0: 74 63 68 64 69 72 7d 2f 73 65 72 69 65 73 22 20  tchdir}/series" 
06f0: 5d 3b 20 74 68 65 6e 0a 09 09 09 69 64 78 3d 30  ]; then....idx=0
0700: 0a 09 09 09 66 6f 72 20 70 61 74 63 68 66 69 6c  ....for patchfil
0710: 65 20 69 6e 20 24 28 63 61 74 20 22 24 7b 70 61  e in $(cat "${pa
0720: 74 63 68 64 69 72 7d 2f 73 65 72 69 65 73 22 29  tchdir}/series")
0730: 3b 20 64 6f 0a 09 09 09 09 70 61 74 63 68 66 69  ; do.....patchfi
0740: 6c 65 73 5b 24 7b 69 64 78 7d 5d 3d 22 24 7b 70  les[${idx}]="${p
0750: 61 74 63 68 64 69 72 7d 2f 24 7b 70 61 74 63 68  atchdir}/${patch
0760: 66 69 6c 65 7d 22 0a 09 09 09 09 69 64 78 3d 24  file}".....idx=$
0770: 5b 24 7b 69 64 78 7d 20 2b 20 31 5d 0a 09 09 09  [${idx} + 1]....
0780: 64 6f 6e 65 0a 09 09 65 6c 73 65 0a 09 09 09 70  done...else....p
0790: 61 74 63 68 66 69 6c 65 73 3d 28 22 24 7b 70 61  atchfiles=("${pa
07a0: 74 63 68 64 69 72 7d 22 2f 2a 2e 64 69 66 66 29  tchdir}"/*.diff)
07b0: 0a 09 09 66 69 0a 0a 09 09 66 6f 72 20 70 61 74  ...fi....for pat
07c0: 63 68 66 69 6c 65 20 69 6e 20 22 24 7b 70 61 74  chfile in "${pat
07d0: 63 68 66 69 6c 65 73 5b 40 5d 7d 22 3b 20 64 6f  chfiles[@]}"; do
07e0: 0a 09 09 09 69 66 20 5b 20 21 20 2d 66 20 22 24  ....if [ ! -f "$
07f0: 7b 70 61 74 63 68 66 69 6c 65 7d 22 20 5d 3b 20  {patchfile}" ]; 
0800: 74 68 65 6e 0a 09 09 09 09 63 6f 6e 74 69 6e 75  then.....continu
0810: 65 0a 09 09 09 66 69 0a 0a 09 09 09 28 0a 09 09  e....fi.....(...
0820: 09 09 63 64 20 22 62 75 69 6c 64 2f 24 7b 42 55  ..cd "build/${BU
0830: 49 4c 44 44 49 52 7d 22 20 7c 7c 20 65 78 69 74  ILDDIR}" || exit
0840: 20 31 0a 0a 09 09 09 09 65 63 68 6f 20 22 2a 20   1......echo "* 
0850: 41 70 70 6c 79 69 6e 67 20 70 61 74 63 68 20 5c  Applying patch \
0860: 22 24 7b 70 61 74 63 68 66 69 6c 65 7d 5c 22 22  "${patchfile}\""
0870: 0a 09 09 09 09 22 24 7b 50 41 54 43 48 3a 2d 70  ....."${PATCH:-p
0880: 61 74 63 68 7d 22 20 2d 70 31 20 3c 20 22 24 7b  atch}" -p1 < "${
0890: 70 61 74 63 68 66 69 6c 65 7d 22 0a 09 09 09 29  patchfile}"....)
08a0: 0a 09 09 64 6f 6e 65 0a 09 64 6f 6e 65 0a 7d 0a  ...done..done.}.
08b0: 0a 57 4f 52 4b 44 49 52 3d 22 24 7b 54 4d 50 44  .WORKDIR="${TMPD
08c0: 49 52 3a 2d 2f 74 6d 70 7d 2f 74 63 6c 2d 62 75  IR:-/tmp}/tcl-bu
08d0: 69 6c 64 70 6b 67 73 2d 24 24 24 7b 52 41 4e 44  ildpkgs-$$${RAND
08e0: 4f 4d 7d 24 7b 52 41 4e 44 4f 4d 7d 24 7b 52 41  OM}${RANDOM}${RA
08f0: 4e 44 4f 4d 7d 22 0a 50 4c 41 54 44 49 52 3d 22  NDOM}".PLATDIR="
0900: 24 28 70 77 64 29 2f 6f 75 74 2f 24 7b 56 45 52  $(pwd)/out/${VER
0910: 53 7d 2f 24 7b 50 4c 41 54 46 4f 52 4d 7d 22 0a  S}/${PLATFORM}".
0920: 42 55 49 4c 44 53 59 53 52 4f 4f 54 3d 22 24 28  BUILDSYSROOT="$(
0930: 63 64 20 2e 2e 2f 3b 20 70 77 64 29 22 0a 65 78  cd ../; pwd)".ex
0940: 70 6f 72 74 20 57 4f 52 4b 44 49 52 20 50 4c 41  port WORKDIR PLA
0950: 54 44 49 52 20 42 55 49 4c 44 53 59 53 52 4f 4f  TDIR BUILDSYSROO
0960: 54 0a 0a 73 65 74 75 70 5f 74 63 6c 38 34 0a     T..setup_tcl84.