Hex Artifact Content
Not logged in

Artifact 17e962a3bbf788ad74b72479d3c7aa6ed4dd8298:

Wiki page [Experiment: mmmv_silkexec] by martin_vahi on 2017-03-19 20:58:46.
0000: 44 20 32 30 31 37 2d 30 33 2d 31 39 54 32 30 3a  D 2017-03-19T20:
0010: 35 38 3a 34 36 2e 34 32 31 0a 4c 20 45 78 70 65  58:46.421.L Expe
0020: 72 69 6d 65 6e 74 3a 5c 73 6d 6d 6d 76 5f 73 69  riment:\smmmv_si
0030: 6c 6b 65 78 65 63 0a 50 20 34 33 64 39 35 32 31  lkexec.P 43d9521
0040: 65 39 34 31 62 63 64 39 64 33 65 34 34 39 30 31  e941bcd9d3e44901
0050: 65 30 34 66 32 36 37 32 65 36 65 61 66 34 30 35  e04f2672e6eaf405
0060: 63 0a 55 20 6d 61 72 74 69 6e 5f 76 61 68 69 0a  c.U martin_vahi.
0070: 57 20 31 38 37 38 38 0a 3c 70 3e 3c 62 72 3e 0a  W 18788.<p><br>.
0080: 3c 2f 70 3e 0a 0a 3c 68 31 3e 44 65 70 72 65 63  </p>..<h1>Deprec
0090: 61 74 65 64 20 56 65 72 73 69 6f 6e 73 20 6f 66  ated Versions of
00a0: 20 74 68 69 73 20 53 70 65 63 69 66 69 63 61 74   this Specificat
00b0: 69 6f 6e 3c 2f 68 31 3e 0a 0a 3c 70 3e 3c 2f 70  ion</h1>..<p></p
00c0: 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72  >.<ul>.<li><a hr
00d0: 65 66 3d 22 2e 2f 77 69 6b 69 3f 6e 61 6d 65 3d  ef="./wiki?name=
00e0: 45 78 70 65 72 69 6d 65 6e 74 3a 2b 6d 6d 6d 76  Experiment:+mmmv
00f0: 5f 73 69 6c 6b 65 78 65 63 3a 2b 44 65 70 72 65  _silkexec:+Depre
0100: 63 61 74 65 64 2b 56 65 72 73 69 6f 6e 2b 31 22  cated+Version+1"
0110: 3e 44 65 70 72 65 63 61 74 65 64 0a 56 65 72 73  >Deprecated.Vers
0120: 69 6f 6e 20 31 3c 2f 61 3e 2c 20 77 68 69 63 68  ion 1</a>, which
0130: 20 69 73 20 63 6f 6d 70 6c 65 74 65 2c 20 62 75   is complete, bu
0140: 74 20 66 6c 61 77 65 64 2e 26 6e 62 73 70 3b 3c  t flawed.&nbsp;<
0150: 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 3c 70 3e 3c  /li>.</ul>..<p><
0160: 2f 70 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c 2f 70  /p>..<p><br>.</p
0170: 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a  >..<p><br>.</p>.
0180: 0a 3c 68 31 3e 54 68 65 20 43 75 72 72 65 6e 74  .<h1>The Current
0190: 20 61 6e 64 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72   and <font color
01a0: 3d 22 23 66 66 30 30 30 30 22 3e 49 6e 63 6f 6d  ="#ff0000">Incom
01b0: 70 6c 65 74 65 3c 2f 66 6f 6e 74 3e 20 56 65 72  plete</font> Ver
01c0: 73 69 6f 6e 20 6f 66 20 74 68 69 73 0a 53 70 65  sion of this.Spe
01d0: 63 69 66 69 63 61 74 69 6f 6e 3c 2f 68 31 3e 0a  cification</h1>.
01e0: 0a 3c 70 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d  .<p><font color=
01f0: 22 23 66 66 30 30 30 30 22 3e 43 75 72 72 65 6e  "#ff0000">Curren
0200: 74 6c 79 20 63 6f 64 65 20 66 6f 72 20 74 68 65  tly code for the
0210: 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 20 64   mmmv_silkexec d
0220: 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 0a 54  oes not exist..T
0230: 68 65 20 66 6c 61 77 73 20 74 68 61 74 20 74 68  he flaws that th
0240: 65 20 63 75 72 72 65 6e 74 20 76 65 72 73 69 6f  e current versio
0250: 6e 20 6d 75 73 74 20 65 6c 69 6d 69 6e 61 74 65  n must eliminate
0260: 20 61 72 65 20 64 65 73 63 72 69 62 65 64 20 61   are described a
0270: 74 20 74 68 65 20 70 61 67 65 20 6f 66 0a 74 68  t the page of.th
0280: 65 20 3c 61 20 68 72 65 66 3d 22 2e 2f 77 69 6b  e <a href="./wik
0290: 69 3f 6e 61 6d 65 3d 45 78 70 65 72 69 6d 65 6e  i?name=Experimen
02a0: 74 3a 2b 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63  t:+mmmv_silkexec
02b0: 3a 2b 44 65 70 72 65 63 61 74 65 64 2b 56 65 72  :+Deprecated+Ver
02c0: 73 69 6f 6e 2b 31 22 3e 6d 6f 73 74 0a 63 75 72  sion+1">most.cur
02d0: 72 65 6e 74 20 64 65 70 72 65 63 61 74 65 64 20  rent deprecated 
02e0: 76 65 72 73 69 6f 6e 3c 2f 61 3e 2e 3c 2f 66 6f  version</a>.</fo
02f0: 6e 74 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 70  nt><br>.</p>..<p
0300: 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 3c  ><br>.</p>..<p><
0310: 62 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 23  b><font color="#
0320: 30 30 38 30 30 30 22 3e 41 63 74 69 6f 6e 20 70  008000">Action p
0330: 6c 61 6e 3a 20 66 69 72 73 74 20 69 6d 70 6c 65  lan: first imple
0340: 6d 65 6e 74 20 61 20 6d 6f 72 65 20 65 6c 65 67  ment a more eleg
0350: 61 6e 74 20 76 65 72 73 69 6f 6e 0a 6f 66 20 74  ant version.of t
0360: 68 65 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63  he mmmv_silkexec
0370: 20 73 70 65 63 20 62 79 20 75 73 69 6e 67 20 74   spec by using t
0380: 68 65 20 6d 6d 6d 76 20 64 65 76 65 6c 20 70 72  he mmmv devel pr
0390: 6f 6a 65 63 74 20 73 74 79 6c 65 20 66 6f 6c 64  oject style fold
03a0: 65 72 0a 73 74 72 75 63 74 75 72 65 2c 20 6d 6d  er.structure, mm
03b0: 6d 76 5f 73 69 6c 6b 65 78 65 63 20 73 70 65 63  mv_silkexec spec
03c0: 69 66 69 63 20 70 61 72 61 6d 65 74 72 69 7a 65  ific parametrize
03d0: 64 20 52 61 6b 65 20 74 61 73 6b 20 61 6e 64 20  d Rake task and 
03e0: 74 68 65 0a 3c 61 20 68 72 65 66 3d 22 68 74 74  the.<a href="htt
03f0: 70 3a 2f 2f 74 65 63 68 6e 6f 6c 6f 67 79 2e 73  p://technology.s
0400: 6f 66 74 66 31 2e 63 6f 6d 2f 6d 6d 6d 76 5f 64  oftf1.com/mmmv_d
0410: 69 73 74 72 6f 63 6f 6d 70 6f 6e 65 6e 74 73 5f  istrocomponents_
0420: 74 31 2f 22 3e 6d 6d 6d 76 5f 64 69 73 74 72 6f  t1/">mmmv_distro
0430: 63 6f 6d 70 6f 6e 65 6e 74 73 5f 74 31 3c 2f 61  components_t1</a
0440: 3e 2e 0a 41 66 74 65 72 20 74 68 61 74 20 6a 75  >..After that ju
0450: 73 74 20 77 72 69 74 65 20 74 68 65 20 64 6f 63  st write the doc
0460: 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68  umentation of th
0470: 65 20 63 6f 6d 70 6c 65 74 65 64 20 73 6f 66 74  e completed soft
0480: 77 61 72 65 2e 3c 2f 66 6f 6e 74 3e 3c 2f 62 3e  ware.</font></b>
0490: 3c 2f 70 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c 2f  </p>..<p><br>.</
04a0: 70 3e 0a 0a 3c 70 3e 3c 62 3e 3c 66 6f 6e 74 20  p>..<p><b><font 
04b0: 63 6f 6c 6f 72 3d 22 23 66 66 30 30 30 30 22 3e  color="#ff0000">
04c0: 41 6c 6c 20 74 65 78 74 20 62 65 6c 6f 77 20 74  All text below t
04d0: 68 69 73 20 6c 69 6e 65 20 69 73 20 6a 75 73 74  his line is just
04e0: 20 61 20 74 65 6d 70 6c 61 74 65 20 66 6f 72 0a   a template for.
04f0: 6c 61 74 65 72 20 65 64 69 74 69 6e 67 2e 3c 2f  later editing.</
0500: 66 6f 6e 74 3e 3c 2f 62 3e 3c 2f 70 3e 0a 0a 3c  font></b></p>..<
0510: 70 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 70 3e  p><br>.</p>..<p>
0520: 41 20 3c 62 3e 6d 6d 6d 76 5f 73 69 6c 6b 65 78  A <b>mmmv_silkex
0530: 65 63 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 28  ec application (
0540: 68 65 72 65 61 66 74 65 72 3a 20 73 69 6c 6b 65  hereafter: silke
0550: 78 61 70 70 29 20 69 73 20 77 72 61 70 70 65 72  xapp) is wrapper
0560: 20 74 6f 20 6f 74 68 65 72 0a 61 70 70 6c 69 63   to other.applic
0570: 61 74 69 6f 6e 73 3c 2f 62 3e 2c 20 69 6e 63 6c  ations</b>, incl
0580: 75 64 69 6e 67 20 6f 74 68 65 72 20 6d 6d 6d 76  uding other mmmv
0590: 5f 73 69 6c 6b 65 78 65 63 20 61 70 70 6c 69 63  _silkexec applic
05a0: 61 74 69 6f 6e 73 2e 20 3c 62 3e 54 68 65 20 70  ations. <b>The p
05b0: 75 72 70 6f 73 65 20 6f 66 0a 74 68 65 20 77 72  urpose of.the wr
05c0: 61 70 70 69 6e 67 20 69 73 20 74 6f 20 75 73 65  apping is to use
05d0: 20 65 78 74 72 61 20 74 61 67 73 20 61 6e 64 20   extra tags and 
05e0: 75 73 65 72 20 73 70 65 63 69 66 69 63 20 63 6f  user specific co
05f0: 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 61 72 61  nfiguration para
0600: 6d 65 74 65 72 73 3c 2f 62 3e 0a 66 6f 72 20 75  meters</b>.for u
0610: 73 69 6e 67 20 74 68 65 20 77 72 61 70 70 61 62  sing the wrappab
0620: 6c 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e 3c  le application.<
0630: 2f 70 3e 0a 0a 3c 70 3e 54 68 65 20 6d 6d 6d 76  /p>..<p>The mmmv
0640: 5f 73 69 6c 6b 65 78 65 63 20 70 72 6f 6a 65 63  _silkexec projec
0650: 74 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 74 68  t consists of th
0660: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 6f 6c  e following tool
0670: 73 3a 3c 2f 70 3e 0a 0a 3c 70 3e 3c 2f 70 3e 0a  s:</p>..<p></p>.
0680: 3c 75 6c 3e 0a 3c 6c 69 3e 54 68 65 20 6d 6d 6d  <ul>.<li>The mmm
0690: 76 5f 73 69 6c 6b 65 78 65 63 20 63 6f 6d 6d 61  v_silkexec comma
06a0: 6e 64 20 6c 69 6e 65 20 74 6f 6f 6c 20 66 6f 72  nd line tool for
06b0: 20 65 78 65 63 75 74 69 6e 67 20 73 69 6c 6b 65   executing silke
06c0: 78 61 70 70 73 20 62 79 0a 61 75 74 6f 6d 61 74  xapps by.automat
06d0: 69 63 61 6c 6c 79 20 70 72 65 66 69 78 69 6e 67  ically prefixing
06e0: 20 74 68 65 20 50 41 54 48 20 77 69 74 68 20 61   the PATH with a
06f0: 20 73 69 6c 6b 65 78 61 70 70 20 73 70 65 63 69   silkexapp speci
0700: 66 69 63 20 50 41 54 48 20 76 61 6c 75 65 2e 20  fic PATH value. 
0710: 43 61 6c 6c 0a 73 79 6e 74 61 78 3a 20 26 6e 62  Call.syntax: &nb
0720: 73 70 3b 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a  sp;</li>.</ul>..
0730: 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e 6d 6d 6d 76  <blockquote>mmmv
0740: 5f 73 69 6c 6b 65 78 65 63 20 26 6c 74 3b 66 75  _silkexec &lt;fu
0750: 6c 6c 20 70 61 74 68 20 6f 66 20 6f 72 20 61 20  ll path of or a 
0760: 6e 61 6d 65 20 6f 6e 20 74 68 65 20 50 41 54 48  name on the PATH
0770: 26 67 74 3b 20 26 6c 74 3b 74 68 65 0a 63 6f 6d  &gt; &lt;the.com
0780: 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 73 20 6f  mand line args o
0790: 66 20 74 68 65 20 73 69 6c 6b 65 78 61 70 70 26  f the silkexapp&
07a0: 67 74 3b 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e  gt;</blockquote>
07b0: 0a 0a 3c 64 69 76 3e 3c 62 72 3e 0a 3c 2f 64 69  ..<div><br>.</di
07c0: 76 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 41 6e 20 61  v>.<ul>.<li>An a
07d0: 70 70 6c 69 63 61 74 69 6f 6e 20 66 6f 72 20 6d  pplication for m
07e0: 61 69 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 74  aintaining the t
07f0: 61 67 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65  ags, for example
0800: 2c 20 74 65 73 74 65 72 20 73 70 65 63 69 66 69  , tester specifi
0810: 63 20 74 65 73 74 0a 72 65 73 75 6c 74 73 2e 3c  c test.results.<
0820: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e 20 61 70 70 6c  /li>.<li>An appl
0830: 69 63 61 74 69 6f 6e 20 66 6f 72 20 6d 61 69 6e  ication for main
0840: 74 61 69 6e 69 6e 67 20 6d 6d 6d 76 5f 73 69 6c  taining mmmv_sil
0850: 6b 65 78 65 63 20 6c 6f 63 61 6c 20 69 6e 73 74  kexec local inst
0860: 61 6c 6c 61 74 69 6f 6e 20 73 70 65 63 69 66 69  allation specifi
0870: 63 0a 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 75  c.global configu
0880: 72 61 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 63  ration and the c
0890: 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 73 69 6c  ollection of sil
08a0: 6b 65 78 61 70 70 73 2e 3c 62 72 3e 0a 3c 2f 6c  kexapps.<br>.</l
08b0: 69 3e 0a 3c 2f 75 6c 3e 0a 0a 3c 70 3e 3c 2f 70  i>.</ul>..<p></p
08c0: 3e 0a 0a 3c 70 3e 4e 6f 20 74 65 63 68 6e 69 63  >..<p>No technic
08d0: 61 6c 20 73 6f 6c 75 74 69 6f 6e 20 69 73 20 67  al solution is g
08e0: 6f 69 6e 67 20 74 6f 20 63 6f 6d 70 65 6e 73 61  oing to compensa
08f0: 74 65 20 66 6f 72 20 63 72 61 70 70 79 20 77 6f  te for crappy wo
0900: 72 6b 2c 20 62 65 63 61 75 73 65 0a 74 65 63 68  rk, because.tech
0910: 6e 69 63 61 6c 20 74 6f 6f 6c 73 20 63 61 6e 20  nical tools can 
0920: 62 65 20 73 77 69 74 63 68 65 64 20 6f 66 66 20  be switched off 
0930: 6f 72 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20  or the original 
0940: 61 75 74 68 6f 72 73 20 6f 66 20 73 6f 66 74 77  authors of softw
0950: 61 72 65 20 6d 61 79 0a 6c 65 61 76 65 20 65 64  are may.leave ed
0960: 67 65 20 63 61 73 65 73 20 6f 75 74 20 6f 66 20  ge cases out of 
0970: 63 6f 6e 73 69 64 65 72 61 74 69 6f 6e 2e 20 54  consideration. T
0980: 68 65 20 6d 61 69 6e 20 69 64 65 61 73 20 62 65  he main ideas be
0990: 68 69 6e 64 20 74 68 65 20 6d 6d 6d 76 5f 73 69  hind the mmmv_si
09a0: 6c 6b 65 78 65 63 0a 61 72 65 3c 62 3e 26 6e 62  lkexec.are<b>&nb
09b0: 73 70 3b 3c 2f 62 3e 74 6f 20 3c 62 3e 61 6c 6c  sp;</b>to <b>all
09c0: 6f 77 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e  ow the execution
09d0: 20 6f 66 20 6f 6e 6c 79 20 74 68 6f 73 65 20 73   of only those s
09e0: 69 6c 6b 65 78 61 70 70 73 20 74 68 61 74 20 68  ilkexapps that h
09f0: 61 76 65 0a 62 65 65 6e 20 74 65 73 74 65 64 20  ave.been tested 
0a00: 61 6e 64 2f 6f 72 20 76 65 72 69 66 69 65 64 20  and/or verified 
0a10: 62 79 20 74 72 75 73 74 65 64 20 70 61 72 74 69  by trusted parti
0a20: 65 73 3c 2f 62 3e 2c 20 74 68 65 0a 3c 61 20 68  es</b>, the.<a h
0a30: 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 6e 69 78  ref="https://nix
0a40: 6f 73 2e 6f 72 67 2f 6e 69 78 2f 22 3e 4e 69 78  os.org/nix/">Nix
0a50: 4f 53 20 70 61 63 6b 61 67 65 20 6d 61 6e 61 67  OS package manag
0a60: 65 72 3c 2f 61 3e 20 69 64 65 61 20 74 68 61 74  er</a> idea that
0a70: 20 65 61 63 68 0a 61 70 70 6c 69 63 61 74 69 6f   each.applicatio
0a80: 6e 20 69 73 20 65 78 65 63 75 74 65 64 20 69 6e  n is executed in
0a90: 20 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c   an environment,
0aa0: 20 77 68 65 72 65 20 3c 62 3e 74 68 65 20 4c 44   where <b>the LD
0ab0: 5f 4c 49 42 52 41 52 59 5f 50 41 54 48 20 61 6e  _LIBRARY_PATH an
0ac0: 64 20 74 68 65 0a 50 41 54 48 20 68 61 76 65 20  d the.PATH have 
0ad0: 73 69 6c 6b 65 78 61 70 70 20 73 70 65 63 69 66  silkexapp specif
0ae0: 69 63 20 70 72 65 66 69 78 65 73 3c 2f 62 3e 2c  ic prefixes</b>,
0af0: 20 74 68 65 20 72 65 6c 69 61 6e 63 65 20 6f 6e   the reliance on
0b00: 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65   operating syste
0b10: 6d 0a 73 65 72 76 69 63 65 73 20 69 73 26 6e 62  m.services is&nb
0b20: 73 70 3b 3c 62 3e 6c 69 6d 69 74 65 64 20 74 6f  sp;<b>limited to
0b30: 20 74 68 65 20 55 4e 49 58 20 73 74 61 6e 64 61   the UNIX standa
0b40: 72 64 3c 2f 62 3e 20 74 6f 20 67 69 76 65 20 74  rd</b> to give t
0b50: 68 65 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63  he mmmv_silkexec
0b60: 0a 61 20 63 68 61 6e 63 65 20 74 6f 20 62 65 20  .a chance to be 
0b70: 70 6f 72 74 65 64 20 74 6f 20 61 6c 6c 20 6f 70  ported to all op
0b80: 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 73 20  erating systems 
0b90: 74 68 61 74 20 68 61 76 65 20 74 68 65 20 55 4e  that have the UN
0ba0: 49 58 20 6c 61 79 65 72 20 3c 69 3e 28 4c 69 6e  IX layer <i>(Lin
0bb0: 75 78 2c 0a 42 53 44 2c 20 47 4e 55 20 48 75 72  ux,.BSD, GNU Hur
0bc0: 64 2c 20 47 65 6e 6f 64 65 20 4f 53 2c 20 4d 69  d, Genode OS, Mi
0bd0: 6e 69 78 33 29 2c 3c 2f 69 3e 20 74 68 65 26 6e  nix3),</i> the&n
0be0: 62 73 70 3b 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65  bsp;mmmv_silkexe
0bf0: 63 20 6d 75 73 74 20 62 65 20 66 75 6c 6c 79 20  c must be fully 
0c00: 3c 62 3e 75 73 61 62 6c 65 0a 77 69 74 68 6f 75  <b>usable.withou
0c10: 74 20 68 61 76 69 6e 67 20 61 6e 79 20 72 6f 6f  t having any roo
0c20: 74 20 61 63 63 65 73 73 3c 2f 62 3e 2e 3c 2f 70  t access</b>.</p
0c30: 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a  >..<p><br>.</p>.
0c40: 0a 3c 70 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c  .<p><br>.</p>..<
0c50: 68 31 3e 53 69 6c 6b 65 78 61 70 70 20 46 6f 72  h1>Silkexapp For
0c60: 6d 61 74 3c 2f 68 31 3e 0a 0a 3c 70 3e 4e 6f 6e  mat</h1>..<p>Non
0c70: 65 20 6f 66 20 74 68 65 20 73 69 6c 6b 65 78 61  e of the silkexa
0c80: 70 70 20 73 74 61 6e 64 61 72 64 20 66 69 6c 65  pp standard file
0c90: 20 61 6e 64 20 66 6f 6c 64 65 72 20 6e 61 6d 65   and folder name
0ca0: 73 20 63 6f 6e 74 61 69 6e 20 61 6e 79 20 73 70  s contain any sp
0cb0: 61 63 65 73 2c 0a 74 61 62 75 6c 61 74 69 6f 6e  aces,.tabulation
0cc0: 20 63 68 61 72 61 63 74 65 72 73 2c 20 6c 69 6e   characters, lin
0cd0: 65 20 62 72 65 61 6b 73 2e 20 41 6c 6c 20 73 69  e breaks. All si
0ce0: 6c 6b 65 78 61 70 70 20 63 6f 6e 66 69 67 75 72  lkexapp configur
0cf0: 61 74 69 6f 6e 20 74 65 78 74 20 66 69 6c 65 73  ation text files
0d00: 2c 20 74 68 65 0a 6f 6e 65 73 20 61 74 20 74 68  , the.ones at th
0d10: 65 20 73 69 6c 6b 65 78 61 70 70 20 65 74 63 20  e silkexapp etc 
0d20: 66 6f 6c 64 65 72 2c 20 61 72 65 20 70 72 65 70  folder, are prep
0d30: 72 6f 63 65 73 73 65 64 20 62 79 20 72 65 6d 6f  rocessed by remo
0d40: 76 69 6e 67 20 61 6c 6c 20 73 70 61 63 65 73 2c  ving all spaces,
0d50: 0a 74 61 62 75 6c 61 74 69 6f 6e 20 63 68 61 72  .tabulation char
0d60: 61 63 74 65 72 73 2c 20 3c 62 3e 73 69 6e 67 6c  acters, <b>singl
0d70: 65 2d 6c 69 6e 65 2d 63 6f 6d 6d 65 6e 74 73 20  e-line-comments 
0d80: 74 68 61 74 20 73 74 61 72 74 20 77 69 74 68 20  that start with 
0d90: 65 69 74 68 65 72 20 22 23 22 20 6f 72 0a 22 2f  either "#" or."/
0da0: 2f 22 3c 2f 62 3e 2e 20 41 66 74 65 72 20 74 68  /"</b>. After th
0db0: 65 20 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f  e single-line-co
0dc0: 6d 6d 65 6e 74 73 20 64 65 6c 65 74 69 6f 6e 20  mments deletion 
0dd0: 70 72 65 70 72 6f 63 65 73 73 69 6e 67 20 73 74  preprocessing st
0de0: 65 70 20 61 6c 6c 20 6f 66 20 74 68 65 0a 6c 69  ep all of the.li
0df0: 6e 65 62 72 65 61 6b 73 20 61 72 65 20 64 65 6c  nebreaks are del
0e00: 65 74 65 64 2c 20 65 78 63 65 70 74 20 66 6f 72  eted, except for
0e10: 20 74 68 65 20 6c 69 73 74 5f 6f 66 5f 69 6d 6d   the list_of_imm
0e20: 65 64 69 61 74 65 5f 64 65 70 65 6e 64 65 6e 63  ediate_dependenc
0e30: 69 65 73 2e 74 78 74 2e 3c 2f 70 3e 0a 0a 3c 70  ies.txt.</p>..<p
0e40: 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a 3c 70 72 65 3e  ><br>.</p>.<pre>
0e50: 26 6c 74 3b 72 65 6c 61 74 65 69 76 65 20 49 44  &lt;relateive ID
0e60: 20 61 73 20 66 6f 6c 64 65 72 20 6e 61 6d 65 26   as folder name&
0e70: 67 74 3b 0d 0a 3c 2f 70 72 65 3e 0a 3c 70 72 65  gt;..</pre>.<pre
0e80: 3e 20 20 20 20 7c 3c 2f 70 72 65 3e 0a 3c 70 72  >    |</pre>.<pr
0e90: 65 3e 3c 70 72 65 3e 20 20 20 20 2b 2d 2d 62 69  e><pre>    +--bi
0ea0: 6e 20 20 23 20 69 73 20 61 20 73 79 6d 6c 69 6e  n  # is a symlin
0eb0: 6b 20 74 6f 20 2e 2f 62 75 69 6c 64 2f 62 69 6e  k to ./build/bin
0ec0: 20 2e 20 54 68 65 20 73 79 6d 6c 69 6e 6b 20 67   . The symlink g
0ed0: 65 74 73 20 63 72 65 61 74 65 64 20 62 79 3c 2f  ets created by</
0ee0: 70 72 65 3e 3c 70 72 65 3e 3c 70 72 65 3e 20 20  pre><pre><pre>  
0ef0: 20 20 7c 20 20 20 20 20 20 20 23 20 74 68 65 20    |       # the 
0f00: 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 20 61 66  mmmv_silkexec af
0f10: 74 65 72 20 74 68 65 20 62 75 69 6c 64 69 6e 67  ter the building
0f20: 20 6f 66 20 74 68 65 20 73 69 6c 6b 65 78 61 70   of the silkexap
0f30: 70 20 68 61 73 20 73 75 63 63 65 65 64 65 64 2e  p has succeeded.
0f40: 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20   </pre><pre>    
0f50: 7c 20 20 20 20 20 20 20 23 20 54 68 65 20 6d 6d  |       # The mm
0f60: 6d 76 5f 73 69 6c 6b 65 78 65 63 20 64 65 6c 65  mv_silkexec dele
0f70: 74 65 73 20 74 68 69 73 20 73 79 6d 6c 69 6e 6b  tes this symlink
0f80: 20 62 65 66 6f 72 65 20 74 68 65 20 65 78 65 63   before the exec
0f90: 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 62 75 69  ution of the bui
0fa0: 6c 64 5f 73 63 72 69 70 74 2e 62 61 73 68 20 2e  ld_script.bash .
0fb0: 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c  </pre><pre>    |
0fc0: 20 20 20 20 20 20 20 23 20 49 66 20 74 68 65 20         # If the 
0fd0: 62 75 69 6c 64 5f 73 63 72 69 70 74 2e 62 61 73  build_script.bas
0fe0: 68 20 65 78 69 74 65 64 20 77 69 74 68 20 61 6e  h exited with an
0ff0: 20 65 72 72 6f 72 2c 20 74 68 65 20 6d 6d 6d 76   error, the mmmv
1000: 5f 73 69 6c 6b 65 78 65 63 20 64 6f 65 73 20 6e  _silkexec does n
1010: 6f 74 20 63 72 65 61 74 65 20 74 68 69 73 20 73  ot create this s
1020: 79 6d 6c 69 6e 6b 2e 3c 2f 70 72 65 3e 3c 2f 70  ymlink.</pre></p
1030: 72 65 3e 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e 20  re></pre>.<pre> 
1040: 20 20 20 7c 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e     |</pre>.<pre>
1050: 20 20 20 20 2b 2d 2d 64 6f 63 20 20 23 20 69 73      +--doc  # is
1060: 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 73 79 6d   an optional sym
1070: 6c 69 6e 6b 20 74 6f 20 2e 2f 62 75 69 6c 64 2f  link to ./build/
1080: 64 6f 63 20 2e 20 54 68 65 20 73 79 6d 6c 69 6e  doc . The symlin
1090: 6b 20 67 65 74 73 20 63 72 65 61 74 65 64 20 62  k gets created b
10a0: 79 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e 3c 70 72  y</pre>.<pre><pr
10b0: 65 3e 20 20 20 20 7c 20 20 20 20 20 20 20 23 20  e>    |       # 
10c0: 74 68 65 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65  the mmmv_silkexe
10d0: 63 20 61 66 74 65 72 20 74 68 65 20 62 75 69 6c  c after the buil
10e0: 64 69 6e 67 20 6f 66 20 74 68 65 20 73 69 6c 6b  ding of the silk
10f0: 65 78 61 70 70 20 68 61 73 20 73 75 63 63 65 65  exapp has succee
1100: 64 65 64 2e 20 3c 2f 70 72 65 3e 3c 70 72 65 3e  ded. </pre><pre>
1110: 20 20 20 20 7c 20 20 20 20 20 20 20 23 20 54 68      |       # Th
1120: 65 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 20  e mmmv_silkexec 
1130: 64 65 6c 65 74 65 73 20 74 68 69 73 20 73 79 6d  deletes this sym
1140: 6c 69 6e 6b 20 62 65 66 6f 72 65 20 74 68 65 20  link before the 
1150: 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 74 68 65  execution of the
1160: 20 62 75 69 6c 64 5f 73 63 72 69 70 74 2e 62 61   build_script.ba
1170: 73 68 20 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e 20  sh .</pre><pre> 
1180: 20 20 20 7c 20 20 20 20 20 20 20 23 20 49 66 20     |       # If 
1190: 74 68 65 20 62 75 69 6c 64 5f 73 63 72 69 70 74  the build_script
11a0: 2e 62 61 73 68 20 65 78 69 74 65 64 20 77 69 74  .bash exited wit
11b0: 68 20 61 6e 20 65 72 72 6f 72 2c 20 74 68 65 20  h an error, the 
11c0: 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 20 64 6f  mmmv_silkexec do
11d0: 65 73 20 6e 6f 74 20 63 72 65 61 74 65 20 74 68  es not create th
11e0: 69 73 20 73 79 6d 6c 69 6e 6b 2e 3c 2f 70 72 65  is symlink.</pre
11f0: 3e 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e 20 20 20  ></pre>.<pre>   
1200: 20 7c 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e 20 20   |</pre>.<pre>  
1210: 20 20 2b 2d 2d 20 65 74 63 20 23 20 69 73 20 61    +-- etc # is a
1220: 6e 20 6f 70 74 69 6f 6e 61 6c 20 66 6f 6c 64 65  n optional folde
1230: 72 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e 20 20 20  r</pre>.<pre>   
1240: 20 7c 20 20 20 20 2b 2d 2d 72 75 6e 74 69 6d 65   |    +--runtime
1250: 5f 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 23 20 69  _environment # i
1260: 73 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 66 6f  s an optional fo
1270: 6c 64 65 72 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e  lder</pre>.<pre>
1280: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 3c      |    |    |<
1290: 2f 70 72 65 3e 0a 3c 70 72 65 3e 3c 70 72 65 3e  /pre>.<pre><pre>
12a0: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 2b 2d      |    |    +-
12b0: 2d 6f 76 65 72 72 69 64 69 6e 67 5f 76 61 6c 75  -overriding_valu
12c0: 65 73 5f 6f 66 5f 65 6e 76 69 72 6f 6e 6d 65 6e  es_of_environmen
12d0: 74 5f 76 61 72 69 61 62 6c 65 5f 76 61 6c 75 65  t_variable_value
12e0: 73 20 20 20 23 20 74 68 65 20 65 78 69 73 74 65  s   # the existe
12f0: 6e 63 65 20 6f 66 20 74 68 69 73 20 66 6f 6c 64  nce of this fold
1300: 65 72 20 69 73 20 6f 70 74 69 6f 6e 61 6c 3c 2f  er is optional</
1310: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
1320: 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 23    |    |    |  #
1330: 20 41 6c 6c 20 66 69 6c 65 73 20 69 6e 20 74 68   All files in th
1340: 69 73 20 66 6f 6c 64 65 72 20 61 72 65 20 6f 70  is folder are op
1350: 74 69 6f 6e 61 6c 2e 20 46 69 6c 65 20 6e 61 6d  tional. File nam
1360: 65 73 20 77 69 74 68 6f 75 74 20 74 68 65 20 22  es without the "
1370: 2e 74 78 74 22 20 73 75 66 66 69 78 3c 2f 70 72  .txt" suffix</pr
1380: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
1390: 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 23 20 6d  |    |    |  # m
13a0: 75 73 74 20 6d 61 74 63 68 20 77 69 74 68 20 74  ust match with t
13b0: 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76  he environment v
13c0: 61 72 69 61 62 6c 65 20 6e 61 6d 65 2e 20 46 69  ariable name. Fi
13d0: 6c 65 20 6e 61 6d 65 73 20 61 72 65 20 63 61 73  le names are cas
13e0: 65 20 73 65 6e 73 69 74 69 76 65 2e 3c 2f 70 72  e sensitive.</pr
13f0: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
1400: 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 3c 2f 70  |    |    |  </p
1410: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
1420: 20 7c 20 20 20 20 7c 20 20 20 20 2b 2d 2d 4c 44   |    |    +--LD
1430: 5f 4c 49 42 52 41 52 59 5f 50 41 54 48 2e 74 78  _LIBRARY_PATH.tx
1440: 74 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20  t</pre><pre>    
1450: 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 2b  |    |    |    +
1460: 2d 2d 50 41 54 48 2e 74 78 74 3c 2f 70 72 65 3e  --PATH.txt</pre>
1470: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
1480: 20 20 20 7c 20 20 20 20 2b 2d 2d 43 46 4c 41 47     |    +--CFLAG
1490: 53 2e 74 78 74 3c 2f 70 72 65 3e 3c 70 72 65 3e  S.txt</pre><pre>
14a0: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20      |    |    | 
14b0: 20 20 20 2b 2d 2d 26 6c 74 3b 6f 74 68 65 72 20     +--&lt;other 
14c0: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69  environment vari
14d0: 61 62 6c 65 73 26 67 74 3b 3c 2f 70 72 65 3e 3c  ables&gt;</pre><
14e0: 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20  pre>    |    |  
14f0: 20 20 7c 3c 2f 70 72 65 3e 3c 2f 70 72 65 3e 0a    |</pre></pre>.
1500: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
1510: 20 20 20 2b 2d 2d 70 72 65 66 69 78 65 73 5f 6f     +--prefixes_o
1520: 66 5f 65 6e 76 69 72 6f 6e 6d 65 6e 74 5f 76 61  f_environment_va
1530: 72 69 61 62 6c 65 5f 76 61 6c 75 65 73 20 20 20  riable_values   
1540: 23 20 74 68 65 20 65 78 69 73 74 65 6e 63 65 20  # the existence 
1550: 6f 66 20 74 68 69 73 20 66 6f 6c 64 65 72 20 69  of this folder i
1560: 73 20 6f 70 74 69 6f 6e 61 6c 3c 2f 70 72 65 3e  s optional</pre>
1570: 0a 3c 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c  .<pre><pre>    |
1580: 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 7c 20      |         | 
1590: 20 23 20 41 6c 6c 20 66 69 6c 65 73 20 69 6e 20   # All files in 
15a0: 74 68 69 73 20 66 6f 6c 64 65 72 20 61 72 65 20  this folder are 
15b0: 6f 70 74 69 6f 6e 61 6c 2e 20 46 69 6c 65 20 6e  optional. File n
15c0: 61 6d 65 73 20 77 69 74 68 6f 75 74 20 74 68 65  ames without the
15d0: 20 22 2e 74 78 74 22 20 73 75 66 66 69 78 3c 2f   ".txt" suffix</
15e0: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
15f0: 20 20 7c 20 20 20 20 20 20 20 20 20 7c 20 20 23    |         |  #
1600: 20 6d 75 73 74 20 6d 61 74 63 68 20 77 69 74 68   must match with
1610: 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74   the environment
1620: 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 2e 20   variable name. 
1630: 46 69 6c 65 20 6e 61 6d 65 73 20 61 72 65 20 63  File names are c
1640: 61 73 65 20 73 65 6e 73 69 74 69 76 65 2e 3c 2f  ase sensitive.</
1650: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
1660: 20 20 7c 20 20 20 20 20 20 20 20 20 7c 20 20 3c    |         |  <
1670: 2f 70 72 65 3e 3c 2f 70 72 65 3e 0a 3c 70 72 65  /pre></pre>.<pre
1680: 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20  >    |    |     
1690: 20 20 20 20 2b 2d 2d 4c 44 5f 4c 49 42 52 41 52      +--LD_LIBRAR
16a0: 59 5f 50 41 54 48 2e 74 78 74 3c 2f 70 72 65 3e  Y_PATH.txt</pre>
16b0: 0a 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c  .<pre>    |    |
16c0: 20 20 20 20 20 20 20 20 20 2b 2d 2d 50 41 54 48           +--PATH
16d0: 2e 74 78 74 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e  .txt</pre>.<pre>
16e0: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20      |    |      
16f0: 20 20 20 2b 2d 2d 43 46 4c 41 47 53 2e 74 78 74     +--CFLAGS.txt
1700: 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e 20 20 20 20  </pre>.<pre>    
1710: 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 2b  |    |         +
1720: 2d 2d 26 6c 74 3b 6f 74 68 65 72 20 65 6e 76 69  --&lt;other envi
1730: 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65  ronment variable
1740: 73 26 67 74 3b 3c 2f 70 72 65 3e 0a 3c 70 72 65  s&gt;</pre>.<pre
1750: 3e 20 20 20 20 7c 20 20 20 20 7c 3c 2f 70 72 65  >    |    |</pre
1760: 3e 0a 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  >.<pre>    |    
1770: 2b 2d 2d 62 75 69 6c 64 74 69 6d 65 5f 65 6e 76  +--buildtime_env
1780: 69 72 6f 6e 6d 65 6e 74 20 23 20 69 73 20 61 6e  ironment # is an
1790: 20 6f 70 74 69 6f 6e 61 6c 20 66 6f 6c 64 65 72   optional folder
17a0: 2e 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e 3c 70 72  .</pre>.<pre><pr
17b0: 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20  e>    |    |    
17c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d0: 20 20 20 20 23 20 54 68 65 20 63 6f 6e 74 65 6e      # The conten
17e0: 74 20 6f 66 20 74 68 69 73 20 66 6f 6c 64 65 72  t of this folder
17f0: 20 68 61 73 20 74 68 65 20 73 61 6d 65 20 66 6f   has the same fo
1800: 72 6d 61 74 3c 2f 70 72 65 3e 3c 70 72 65 3e 20  rmat</pre><pre> 
1810: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20     |    |       
1820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1830: 20 23 20 61 73 20 64 6f 65 73 20 74 68 65 20 66   # as does the f
1840: 6f 6c 64 65 72 20 2e 2f 72 75 6e 74 69 6d 65 5f  older ./runtime_
1850: 65 6e 76 69 72 6f 6e 6d 65 6e 74 3c 2f 70 72 65  environment</pre
1860: 3e 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e 3c 70 72  ></pre>.<pre><pr
1870: 65 3e 20 20 20 20 7c 20 20 20 20 7c 3c 2f 70 72  e>    |    |</pr
1880: 65 3e 3c 70 72 65 3e 3c 70 72 65 3e 20 20 20 20  e><pre><pre>    
1890: 7c 20 20 20 20 2b 2d 2d 6c 69 73 74 5f 6f 66 5f  |    +--list_of_
18a0: 69 6d 6d 65 64 69 61 74 65 5f 64 65 70 65 6e 64  immediate_depend
18b0: 65 6e 63 69 65 73 2e 74 78 74 20 23 20 4f 70 74  encies.txt # Opt
18c0: 69 6f 6e 61 6c 2e 20 49 66 20 65 78 69 73 74 73  ional. If exists
18d0: 2c 20 74 68 65 6e 20 3c 2f 70 72 65 3e 3c 70 72  , then </pre><pr
18e0: 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20  e>    |    |    
18f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1910: 20 23 20 74 68 65 72 65 20 69 73 20 6f 6e 65 20   # there is one 
1920: 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f  <a href="http://
1930: 77 77 77 2e 73 6f 66 74 66 31 2e 63 6f 6d 2f 63  www.softf1.com/c
1940: 67 69 2d 62 69 6e 2f 74 72 65 65 31 2f 74 65 63  gi-bin/tree1/tec
1950: 68 6e 6f 6c 6f 67 79 2f 66 6c 61 77 73 2f 73 69  hnology/flaws/si
1960: 6c 6b 74 6f 72 72 65 6e 74 2e 62 61 73 68 2f 77  lktorrent.bash/w
1970: 69 6b 69 3f 6e 61 6d 65 3d 41 6c 67 6f 72 69 74  iki?name=Algorit
1980: 68 6d 2b 61 6e 64 2b 49 6d 70 6c 65 6d 65 6e 74  hm+and+Implement
1990: 61 74 69 6f 6e 22 3e 53 69 6c 6b 74 6f 72 72 65  ation">Silktorre
19a0: 6e 74 20 70 61 63 6b 65 74 3c 2f 61 3e 20 6e 61  nt packet</a> na
19b0: 6d 65 20 70 65 72 20 6c 69 6e 65 2e 3c 2f 70 72  me per line.</pr
19c0: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
19d0: 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  |               
19e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f0: 20 20 20 20 20 20 23 20 41 6c 6c 20 6f 66 20 74        # All of t
1a00: 68 65 20 53 69 6c 6b 74 6f 72 72 65 6e 74 20 70  he Silktorrent p
1a10: 61 63 6b 65 74 73 20 61 72 65 20 72 65 71 75 69  ackets are requi
1a20: 72 65 64 20 74 6f 20 3c 2f 70 72 65 3e 3c 70 72  red to </pre><pr
1a30: 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20  e>    |    |    
1a40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a60: 20 23 20 63 6f 6e 66 6f 72 6d 20 74 6f 20 74 68   # conform to th
1a70: 65 20 53 69 6c 6b 65 78 61 70 70 20 66 6f 72 6d  e Silkexapp form
1a80: 61 74 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  at.</pre><pre>  
1a90: 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20    |    |        
1aa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 54               # T
1ac0: 68 65 20 6c 69 73 74 20 69 6e 63 6c 75 64 65 73  he list includes
1ad0: 20 62 75 69 6c 64 20 64 65 70 65 6e 64 65 6e 63   build dependenc
1ae0: 69 65 73 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e 20  ies.</pre><pre> 
1af0: 20 20 20 7c 20 20 20 20 7c 3c 2f 70 72 65 3e 3c     |    |</pre><
1b00: 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20  /pre><pre>    | 
1b10: 20 20 20 2b 2d 2d 6c 69 73 74 5f 6f 66 5f 61 67     +--list_of_ag
1b20: 67 72 65 67 61 74 65 5f 53 69 6c 6b 74 6f 72 72  gregate_Silktorr
1b30: 65 6e 74 5f 70 61 63 6b 65 74 73 2e 74 78 74 20  ent_packets.txt 
1b40: 23 20 4f 70 74 69 6f 6e 61 6c 2e 20 49 66 20 65  # Optional. If e
1b50: 78 69 73 74 73 2c 20 74 68 65 6e 20 3c 2f 70 72  xists, then </pr
1b60: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
1b70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b90: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 74               # t
1ba0: 68 65 72 65 20 69 73 20 6f 6e 65 20 3c 61 20 68  here is one <a h
1bb0: 72 65 66 3d 22 2e 2f 77 69 6b 69 3f 6e 61 6d 65  ref="./wiki?name
1bc0: 3d 41 6c 67 6f 72 69 74 68 6d 2b 61 6e 64 2b 49  =Algorithm+and+I
1bd0: 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 22 3e 53  mplementation">S
1be0: 69 6c 6b 74 6f 72 72 65 6e 74 20 70 61 63 6b 65  ilktorrent packe
1bf0: 74 3c 2f 61 3e 20 6e 61 6d 65 20 70 65 72 20 6c  t</a> name per l
1c00: 69 6e 65 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e 20  ine.</pre><pre> 
1c10: 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20     |            
1c20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c40: 20 20 20 20 20 23 20 46 72 6f 6d 20 74 68 65 20       # From the 
1c50: 70 6f 69 6e 74 20 6f 66 20 76 69 65 77 20 6f 66  point of view of
1c60: 20 74 68 69 73 20 6d 6d 6d 76 5f 73 69 6c 6b 65   this mmmv_silke
1c70: 78 65 63 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  xec</pre><pre>  
1c80: 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20    |             
1c90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb0: 20 20 20 20 23 20 73 70 65 63 69 66 69 63 61 74      # specificat
1cc0: 69 6f 6e 20 74 68 65 20 63 6f 6e 74 65 6e 74 20  ion the content 
1cd0: 6f 66 20 74 68 6f 73 65 20 53 69 6c 6b 74 6f 72  of those Silktor
1ce0: 72 65 6e 74 20 70 61 63 6b 65 74 73 3c 2f 70 72  rent packets</pr
1cf0: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
1d00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d20: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 69               # i
1d30: 73 20 6e 6f 74 20 64 65 74 65 72 6d 69 6e 65 64  s not determined
1d40: 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20  .</pre><pre>    
1d50: 7c 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20  |</pre><pre>    
1d60: 2b 2d 2d 73 72 63 20 23 20 41 66 74 65 72 20 75  +--src # After u
1d70: 6e 70 61 63 6b 69 6e 67 20 69 74 20 69 73 20 72  npacking it is r
1d80: 65 63 75 72 73 69 76 65 6c 79 20 73 65 74 20 74  ecursively set t
1d90: 6f 20 66 69 6c 65 20 70 65 72 6d 69 73 73 69 6f  o file permissio
1da0: 6e 73 20 30 34 41 42 2c 20 3c 2f 70 72 65 3e 3c  ns 04AB, </pre><
1db0: 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 23  pre>    |    | #
1dc0: 20 77 68 65 72 65 20 41 2c 42 20 69 6e 53 65 74   where A,B inSet
1dd0: 7b 34 2c 30 7d 20 61 6e 64 20 65 61 63 68 20 6f  {4,0} and each o
1de0: 66 20 74 68 65 6d 2c 20 74 68 65 20 41 20 61 6e  f them, the A an
1df0: 64 20 74 68 65 20 42 2c 20 69 73 20 3c 2f 70 72  d the B, is </pr
1e00: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
1e10: 7c 20 23 20 64 65 74 65 72 6d 69 6e 65 64 20 62  | # determined b
1e20: 79 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 20  y mmmv_silkexec 
1e30: 73 65 74 74 69 6e 67 73 2c 20 77 68 69 63 68 20  settings, which 
1e40: 61 72 65 20 6d 61 6e 69 70 75 6c 61 74 65 64 20  are manipulated 
1e50: 62 79 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  by </pre><pre>  
1e60: 20 20 7c 20 20 20 20 7c 20 23 20 6d 6d 6d 76 5f    |    | # mmmv_
1e70: 73 69 6c 6b 65 78 65 63 20 73 79 73 2d 63 6f 6d  silkexec sys-com
1e80: 6d 61 6e 64 73 2e 20 45 76 65 72 79 74 68 69 6e  mands. Everythin
1e90: 67 20 69 6e 20 74 68 65 20 74 68 69 73 20 66 6f  g in the this fo
1ea0: 6c 64 65 72 2c 20 74 68 65 20 73 72 63 2c 3c 2f  lder, the src,</
1eb0: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
1ec0: 20 20 7c 20 23 20 69 73 20 61 75 74 6f 6d 61 74    | # is automat
1ed0: 69 63 61 6c 6c 79 20 63 6f 70 69 65 64 20 74 6f  ically copied to
1ee0: 20 74 68 65 20 62 75 69 6c 64 20 66 6f 6c 64 65   the build folde
1ef0: 72 20 62 65 66 6f 72 65 20 62 75 69 6c 64 69 6e  r before buildin
1f00: 67 2e 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  g. </pre><pre>  
1f10: 20 20 7c 20 20 20 20 7c 3c 2f 70 72 65 3e 3c 70    |    |</pre><p
1f20: 72 65 3e 20 20 20 20 7c 20 20 20 20 2b 2d 2d 73  re>    |    +--s
1f30: 69 6c 6b 65 78 61 70 70 5f 63 6f 6e 74 72 6f 6c  ilkexapp_control
1f40: 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c  </pre><pre>    |
1f50: 20 20 20 20 7c 20 20 20 20 7c 3c 2f 70 72 65 3e      |    |</pre>
1f60: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
1f70: 20 20 20 2b 2d 2d 62 75 69 6c 64 5f 73 63 72 69     +--build_scri
1f80: 70 74 2e 62 61 73 68 20 23 20 69 73 20 65 78 65  pt.bash # is exe
1f90: 63 75 74 65 64 20 61 73 20 61 20 63 6f 70 79 20  cuted as a copy 
1fa0: 69 6e 20 74 68 65 20 73 75 62 66 6f 6c 64 65 72  in the subfolder
1fb0: 20 6f 66 20 74 68 65 20 62 75 69 6c 64 20 66 6f   of the build fo
1fc0: 6c 64 65 72 2e 20 3c 2f 70 72 65 3e 3c 70 72 65  lder. </pre><pre
1fd0: 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c  >    |    |    |
1fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ff0: 20 20 20 20 23 20 42 75 69 6c 64 69 6e 67 20 61      # Building a
2000: 6c 77 61 79 73 20 69 6e 63 6c 75 64 65 73 20 62  lways includes b
2010: 6f 6f 74 73 74 72 61 70 70 69 6e 67 2e 20 49 66  ootstrapping. If
2020: 20 74 68 65 20 62 75 69 6c 64 20 66 61 69 6c 73   the build fails
2030: 2c 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20  ,</pre><pre>    
2040: 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20  |    |    |     
2050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23                 #
2060: 20 74 68 65 6e 20 74 68 65 20 62 75 69 6c 64 5f   then the build_
2070: 73 63 72 69 70 74 2e 62 61 73 68 20 6d 75 73 74  script.bash must
2080: 20 65 78 69 74 20 77 69 74 68 20 61 20 6e 6f 6e   exit with a non
2090: 2d 30 20 65 72 72 6f 72 20 63 6f 64 65 2e 3c 2f  -0 error code.</
20a0: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
20b0: 20 20 7c 20 20 20 20 7c 3c 2f 70 72 65 3e 3c 70    |    |</pre><p
20c0: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
20d0: 20 7c 20 20 20 20 2b 2d 2d 72 75 6e 5f 61 6c 6c   |    +--run_all
20e0: 5f 74 65 73 74 73 5f 61 6e 64 5f 65 78 69 74 5f  _tests_and_exit_
20f0: 77 69 74 68 5f 30 5f 69 66 5f 61 6c 6c 5f 74 65  with_0_if_all_te
2100: 73 74 73 5f 70 61 73 73 5f 74 31 2e 62 61 73 68  sts_pass_t1.bash
2110: 20 23 20 73 68 6f 75 6c 64 20 64 65 73 63 72 69   # should descri
2120: 62 65 20 66 61 69 6c 75 72 65 73 20 61 74 20 73  be failures at s
2130: 74 64 6f 75 74 20 6f 72 20 73 74 64 65 72 72 3c  tdout or stderr<
2140: 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20  /pre><pre>    | 
2150: 20 20 20 7c 20 20 20 20 7c 3c 2f 70 72 65 3e 3c     |    |</pre><
2160: 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20  pre>    |    |  
2170: 20 20 2b 2d 2d 73 69 5f 73 74 6f 72 61 67 65 5f    +--si_storage_
2180: 73 70 61 63 65 5f 73 69 7a 65 5f 69 6e 5f 62 79  space_size_in_by
2190: 74 65 73 5f 77 69 74 68 6f 75 74 5f 69 6e 63 6c  tes_without_incl
21a0: 75 64 69 6e 67 5f 64 65 70 65 6e 64 65 6e 63 69  uding_dependenci
21b0: 65 73 2e 62 61 73 68 20 23 20 50 72 69 6e 74 73  es.bash # Prints
21c0: 20 61 20 6e 75 6d 62 65 72 20 74 6f 20 63 6f 6e   a number to con
21d0: 73 6f 6c 65 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e  sole.</pre><pre>
21e0: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20      |    |    | 
21f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2230: 20 20 20 20 23 20 54 68 65 20 70 72 69 6e 74 6f      # The printo
2240: 75 74 20 6d 61 79 20 69 6e 63 6c 75 64 65 20 3c  ut may include <
2250: 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20  /pre><pre>    | 
2260: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20     |    |       
2270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
22a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20                # 
22b0: 61 20 6c 69 6e 65 20 62 72 65 61 6b 2e 3c 2f 70  a line break.</p
22c0: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
22d0: 20 7c 20 20 20 20 7c 3c 2f 70 72 65 3e 3c 70 72   |    |</pre><pr
22e0: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
22f0: 7c 20 20 20 20 2b 2d 2d 73 69 5f 72 65 63 75 72  |    +--si_recur
2300: 73 69 76 65 5f 73 74 6f 72 61 67 65 5f 73 70 61  sive_storage_spa
2310: 63 65 5f 73 69 7a 65 5f 6f 66 5f 61 6c 6c 5f 69  ce_size_of_all_i
2320: 6d 6d 65 64 69 61 74 65 5f 64 65 70 65 6e 64 65  mmediate_depende
2330: 6e 63 69 65 73 5f 69 6e 5f 62 79 74 65 73 2e 62  ncies_in_bytes.b
2340: 61 73 68 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20  ash </pre><pre> 
2350: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20     |    |    |  
2360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
23a0: 20 20 20 23 20 50 72 69 6e 74 73 20 61 20 6e 75     # Prints a nu
23b0: 6d 62 65 72 20 74 6f 20 63 6f 6e 73 6f 6c 65 2e  mber to console.
23c0: 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c  </pre><pre>    |
23d0: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20      |    |      
23e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
23f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2400: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23                 #
2420: 20 54 68 65 20 70 72 69 6e 74 6f 75 74 20 6d 61   The printout ma
2430: 79 20 69 6e 63 6c 75 64 65 20 3c 2f 70 72 65 3e  y include </pre>
2440: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
2450: 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20     |            
2460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2490: 20 20 20 20 20 20 20 20 20 23 20 61 20 6c 69 6e           # a lin
24a0: 65 20 62 72 65 61 6b 2e 3c 2f 70 72 65 3e 3c 70  e break.</pre><p
24b0: 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20  re>    |    |   
24c0: 20 7c 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20   |</pre><pre>   
24d0: 20 7c 20 20 20 20 7c 20 20 20 20 2b 2d 2d 73 5f   |    |    +--s_
24e0: 73 69 6c 6b 65 78 61 70 70 5f 63 6f 72 65 5f 76  silkexapp_core_v
24f0: 65 72 73 69 6f 6e 2e 62 61 73 68 20 23 20 50 72  ersion.bash # Pr
2500: 69 6e 74 73 20 61 20 73 74 72 69 6e 67 20 74 6f  ints a string to
2510: 20 63 6f 6e 73 6f 6c 65 2e 20 54 6f 20 66 61 63   console. To fac
2520: 69 6c 69 74 61 74 65 20 3c 2f 70 72 65 3e 3c 70  ilitate </pre><p
2530: 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20  re>    |    |   
2540: 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20   |              
2550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2560: 20 20 23 20 74 68 65 20 75 73 65 20 6f 66 20 73    # the use of s
2570: 69 67 6e 61 74 75 72 65 73 2c 20 74 68 65 20 73  ignatures, the s
2580: 74 72 69 6e 67 20 69 73 20 61 6c 6c 6f 77 65 64  tring is allowed
2590: 20 74 6f 20 20 3c 2f 70 72 65 3e 3c 70 72 65 3e   to  </pre><pre>
25a0: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20      |    |    | 
25b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
25c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23                 #
25d0: 20 69 6e 63 6c 75 64 65 20 6c 69 6e 65 20 62 72   include line br
25e0: 65 61 6b 73 2c 20 73 70 61 63 65 73 2c 20 74 61  eaks, spaces, ta
25f0: 62 75 6c 61 74 69 6f 6e 20 63 68 61 72 61 63 74  bulation charact
2600: 65 72 73 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e 20  ers.</pre><pre> 
2610: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20     |    |    |  
2620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20                # 
2640: 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c  </pre><pre>    |
2650: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20      |    |      
2660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2670: 20 20 20 20 20 20 20 20 20 20 23 20 54 68 65 20            # The 
2680: 69 64 65 61 20 69 73 20 74 68 61 74 20 64 69 66  idea is that dif
2690: 66 65 72 65 6e 74 20 73 69 6c 6b 65 78 61 70 70  ferent silkexapp
26a0: 73 20 63 61 6e 20 75 73 65 20 74 68 65 20 73 61  s can use the sa
26b0: 6d 65 20 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20  me  </pre><pre> 
26c0: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20     |    |    |  
26d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
26e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20                # 
26f0: 76 65 72 73 69 6f 6e 20 6f 66 20 61 6e 20 61 70  version of an ap
2700: 70 6c 69 63 61 74 69 6f 6e 20 73 6f 75 72 63 65  plication source
2710: 2c 20 62 75 74 20 74 68 65 20 61 70 70 6c 69 63  , but the applic
2720: 61 74 69 6f 6e 20 73 6f 75 72 63 65 20 3c 2f 70  ation source </p
2730: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
2740: 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20 20   |    |         
2750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2760: 20 20 20 20 20 20 20 23 20 63 61 6e 20 62 65 20         # can be 
2770: 62 75 69 6c 74 20 62 79 20 75 73 69 6e 67 20 64  built by using d
2780: 69 66 66 65 72 65 6e 74 20 62 75 69 6c 64 20 70  ifferent build p
2790: 61 72 61 6d 65 74 65 72 73 2e 20 3c 2f 70 72 65  arameters. </pre
27a0: 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c  ><pre>    |    |
27b0: 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20      |           
27c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
27d0: 20 20 20 20 20 23 20 44 69 66 66 65 72 65 6e 74       # Different
27e0: 20 73 69 6c 6b 65 78 61 70 70 73 20 74 68 61 74   silkexapps that
27f0: 20 62 75 69 6c 64 20 74 68 65 20 61 70 70 6c 69   build the appli
2800: 63 61 74 69 6f 6e 20 62 79 20 3c 2f 70 72 65 3e  cation by </pre>
2810: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
2820: 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20     |            
2830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2840: 20 20 20 20 23 20 75 73 69 6e 67 20 74 68 65 20      # using the 
2850: 73 61 6d 65 20 62 75 69 6c 64 20 70 61 72 61 6d  same build param
2860: 65 74 65 72 73 2c 20 63 61 6e 20 68 61 76 65 20  eters, can have 
2870: 0d 0a 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20  ..</pre><pre>   
2880: 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20   |    |    |    
2890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
28a0: 20 20 20 20 20 20 20 20 20 20 20 20 23 20 64 69              # di
28b0: 66 66 65 72 65 6e 74 20 73 69 6c 6b 65 78 61 70  fferent silkexap
28c0: 70 20 73 63 72 69 70 74 73 20 61 6e 64 20 64 69  p scripts and di
28d0: 66 66 65 72 65 6e 74 20 64 65 76 65 6c 6f 70 65  fferent develope
28e0: 72 73 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  rs.</pre><pre>  
28f0: 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 3c 2f 70    |    |    |</p
2900: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
2910: 20 7c 20 20 20 20 2b 2d 2d 73 62 5f 69 73 5f 72   |    +--sb_is_r
2920: 65 61 64 79 5f 34 5f 73 69 6c 6b 65 78 61 70 70  eady_4_silkexapp
2930: 5f 70 61 63 6b 61 67 65 5f 66 6f 72 6d 61 74 5f  _package_format_
2940: 74 65 73 74 73 2e 62 61 73 68 20 23 20 50 72 69  tests.bash # Pri
2950: 6e 74 73 20 61 20 73 74 72 69 6e 67 20 66 72 6f  nts a string fro
2960: 6d 20 74 68 65 20 73 65 74 20 7b 22 74 22 2c 22  m the set {"t","
2970: 66 22 7d 2c 20 3c 2f 70 72 65 3e 3c 70 72 65 3e  f"}, </pre><pre>
2980: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20      |    |    | 
2990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
29a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
29b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
29c0: 20 20 20 23 20 77 68 65 72 65 20 22 74 22 20 73     # where "t" s
29d0: 74 61 6e 64 73 20 66 6f 72 20 22 74 72 75 65 22  tands for "true"
29e0: 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20   </pre><pre>    
29f0: 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20  |    |    |     
2a00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2a10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2a20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23                 #
2a30: 20 61 6e 64 20 22 66 22 20 73 74 61 6e 64 73 20   and "f" stands 
2a40: 66 6f 72 20 22 66 61 6c 73 65 22 2e 3c 2f 70 72  for "false".</pr
2a50: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
2a60: 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20  |    |          
2a70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2a80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2a90: 20 20 20 20 20 20 20 20 20 20 23 20 54 68 65 20            # The 
2aa0: 73 74 72 69 6e 67 20 64 6f 65 73 20 6e 6f 74 20  string does not 
2ab0: 65 6e 64 20 77 69 74 68 20 61 20 6c 69 6e 65 20  end with a line 
2ac0: 62 72 65 61 6b 2e 3c 2f 70 72 65 3e 3c 70 72 65  break.</pre><pre
2ad0: 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c  >    |    |    |
2ae0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2b00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2b10: 20 20 20 20 23 20 0d 0a 3c 2f 70 72 65 3e 3c 70      # ..</pre><p
2b20: 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20  re>    |    |   
2b30: 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20   |              
2b40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2b50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2b60: 20 20 20 20 20 20 23 20 54 68 65 20 22 66 22 20        # The "f" 
2b70: 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 6e  indicates that n
2b80: 6f 74 20 61 6c 6c 20 0d 0a 3c 2f 70 72 65 3e 3c  ot all ..</pre><
2b90: 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20  pre>    |    |  
2ba0: 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20    |             
2bb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2bd0: 20 20 20 20 20 20 20 23 20 73 69 6c 6b 65 78 61         # silkexa
2be0: 70 70 20 66 6f 72 6d 61 74 20 73 70 65 63 69 66  pp format specif
2bf0: 69 63 20 73 63 72 69 70 74 73 20 61 6e 64 20 3c  ic scripts and <
2c00: 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20  /pre><pre>    | 
2c10: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20     |    |       
2c20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 66               # f
2c50: 6f 6c 64 65 72 73 20 61 72 65 20 70 72 65 73 65  olders are prese
2c60: 6e 74 20 6f 72 20 72 65 61 64 79 20 74 6f 20 62  nt or ready to b
2c70: 65 20 75 73 65 64 2e 3c 2f 70 72 65 3e 3c 70 72  e used.</pre><pr
2c80: 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20  e>    |    |    
2c90: 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  |               
2ca0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2cb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2cc0: 20 20 20 20 20 23 20 54 68 65 20 22 74 22 20 69       # The "t" i
2cd0: 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 74 68  ndicates that th
2ce0: 65 20 63 75 72 72 65 6e 74 20 3c 2f 70 72 65 3e  e current </pre>
2cf0: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
2d00: 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20     |            
2d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2d20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2d30: 20 20 20 20 20 20 20 20 23 20 73 70 65 63 69 66          # specif
2d40: 69 63 61 74 69 6f 6e 20 69 73 20 65 78 70 65 63  ication is expec
2d50: 74 65 64 20 74 6f 20 62 65 20 6d 65 74 3c 2f 70  ted to be met</p
2d60: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
2d70: 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20 20   |    |         
2d80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2d90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2da0: 20 20 20 20 20 20 20 20 20 20 20 23 20 74 6f 20             # to 
2db0: 74 68 65 20 65 78 74 65 6e 74 20 74 68 61 74 20  the extent that 
2dc0: 74 68 65 20 73 69 6c 6b 65 78 61 70 70 20 73 63  the silkexapp sc
2dd0: 72 69 70 74 73 3c 2f 70 72 65 3e 3c 70 72 65 3e  ripts</pre><pre>
2de0: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20      |    |    | 
2df0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2e00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2e20: 20 20 20 23 20 63 61 6e 20 62 65 20 74 65 73 74     # can be test
2e30: 65 64 2e 20 54 68 65 20 6f 75 74 70 75 74 20 76  ed. The output v
2e40: 61 6c 75 65 20 63 61 6e 20 62 65 0d 0a 3c 2f 70  alue can be..</p
2e50: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
2e60: 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20 20   |    |         
2e70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2e80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2e90: 20 20 20 20 20 20 20 20 20 20 20 23 20 63 61 6c             # cal
2ea0: 63 75 6c 61 74 65 64 20 64 75 72 69 6e 67 20 72  culated during r
2eb0: 75 6e 74 69 6d 65 2c 20 64 79 6e 61 6d 69 63 61  untime, dynamica
2ec0: 6c 6c 79 2e 20 3c 2f 70 72 65 3e 3c 70 72 65 3e  lly. </pre><pre>
2ed0: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20      |    |    | 
2ee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2ef0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f10: 20 20 20 23 20 46 6f 72 20 65 78 61 6d 70 6c 65     # For example
2f20: 2c 20 74 68 65 20 73 63 72 69 70 74 20 6d 61 79  , the script may
2f30: 20 73 74 75 64 79 20 74 68 65 20 3c 2f 70 72 65   study the </pre
2f40: 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c  ><pre>    |    |
2f50: 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20      |           
2f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f80: 20 20 20 20 20 20 20 20 20 23 20 76 61 6c 75 65           # value
2f90: 20 6f 66 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20   of environment 
2fa0: 76 61 72 69 61 62 6c 65 73 20 61 6e 64 20 74 68  variables and th
2fb0: 65 20 70 72 65 73 65 6e 63 65 3c 2f 70 72 65 3e  e presence</pre>
2fc0: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
2fd0: 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20     |            
2fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2ff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3000: 20 20 20 20 20 20 20 20 23 20 61 6e 64 20 63 6f          # and co
3010: 6e 74 65 6e 74 20 6f 66 20 66 69 6c 65 73 2e 3c  ntent of files.<
3020: 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20  /pre><pre>    | 
3030: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20     |    |       
3040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3060: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 3c               # <
3070: 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20  /pre><pre>    | 
3080: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20     |    |       
3090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
30a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
30b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 41               # A
30c0: 6e 20 6f 70 74 69 6f 6e 61 6c 20 63 6f 6d 6d 61  n optional comma
30d0: 6e 64 20 6c 69 6e 65 20 70 61 72 61 6d 65 74 65  nd line paramete
30e0: 72 2c 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  r, </pre><pre>  
30f0: 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20    |    |    |   
3100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3130: 20 23 20 22 65 78 70 6c 61 6e 61 74 69 6f 6e 22   # "explanation"
3140: 2c 20 77 69 74 68 6f 75 74 20 74 68 65 20 71 75  , without the qu
3150: 6f 74 65 73 2c 20 3c 2f 70 72 65 3e 3c 70 72 65  otes, </pre><pre
3160: 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c  >    |    |    |
3170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
31a0: 20 20 20 20 23 20 69 73 20 65 78 70 65 63 74 65      # is expecte
31b0: 64 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20  d to change the 
31c0: 6f 75 74 70 75 74 20 6d 6f 64 65 20 3c 2f 70 72  output mode </pr
31d0: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
31e0: 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20  |    |          
31f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3210: 20 20 20 20 20 20 20 20 20 20 23 20 66 72 6f 6d            # from
3220: 20 74 68 65 20 22 74 22 20 61 6e 64 20 22 66 22   the "t" and "f"
3230: 20 74 6f 20 61 20 66 72 65 65 73 74 79 6c 65 20   to a freestyle 
3240: 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c  </pre><pre>    |
3250: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20      |    |      
3260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20                # 
3290: 74 65 78 74 20 74 68 61 74 20 65 78 70 6c 61 69  text that explai
32a0: 6e 73 20 74 68 65 20 63 69 72 63 75 6d 73 74 61  ns the circumsta
32b0: 6e 63 65 73 20 3c 2f 70 72 65 3e 3c 70 72 65 3e  nces </pre><pre>
32c0: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20      |    |    | 
32d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
32e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
32f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3300: 20 20 20 23 20 74 68 61 74 20 65 66 66 65 63 74     # that effect
3310: 20 74 68 65 20 63 68 6f 69 63 65 20 62 65 74 77   the choice betw
3320: 65 65 6e 20 74 68 65 20 3c 2f 70 72 65 3e 3c 70  een the </pre><p
3330: 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20  re>    |    |   
3340: 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20   |              
3350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3370: 20 20 20 20 20 20 23 20 22 74 22 20 61 6e 64 20        # "t" and 
3380: 22 66 22 2e 20 54 68 65 20 66 72 65 65 73 74 79  "f". The freesty
3390: 6c 65 20 74 65 78 74 20 63 61 6e 3c 2f 70 72 65  le text can</pre
33a0: 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c  ><pre>    |    |
33b0: 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20      |           
33c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
33d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
33e0: 20 20 20 20 20 20 20 20 20 23 20 63 6f 6e 74 61           # conta
33f0: 69 6e 20 6c 69 6e 65 20 62 72 61 6b 65 73 2c 20  in line brakes, 
3400: 74 61 62 75 6c 61 74 69 6f 6e 20 63 68 61 72 61  tabulation chara
3410: 63 74 65 72 73 20 61 6e 64 20 3c 2f 70 72 65 3e  cters and </pre>
3420: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
3430: 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20     |            
3440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3450: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3460: 20 20 20 20 20 20 20 20 23 20 73 70 61 63 65 73          # spaces
3470: 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20  .</pre><pre>    
3480: 7c 20 20 20 20 7c 20 20 20 20 7c 0d 0a 3c 2f 70  |    |    |..</p
3490: 72 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  re></pre><pre>  
34a0: 20 20 7c 20 20 20 20 7c 20 20 20 20 2b 2d 2d 64    |    |    +--d
34b0: 65 6c 65 74 65 5f 63 61 63 68 65 5f 63 6f 6e 74  elete_cache_cont
34c0: 65 6e 74 5f 74 31 2e 62 61 73 68 20 23 20 73 65  ent_t1.bash # se
34d0: 74 73 20 73 69 6c 6b 65 78 61 70 70 20 73 74 61  ts silkexapp sta
34e0: 74 65 20 74 6f 20 61 73 20 69 66 20 69 74 20 77  te to as if it w
34f0: 65 72 65 20 69 6e 73 74 61 6c 6c 65 64 20 74 68  ere installed th
3500: 65 20 31 2e 20 74 69 6d 65 3c 2f 70 72 65 3e 3c  e 1. time</pre><
3510: 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20  pre>    |    |  
3520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3540: 20 20 23 20 49 66 20 62 75 69 6c 64 20 73 75 63    # If build suc
3550: 63 65 65 64 73 20 61 6e 64 20 74 68 69 73 20 66  ceeds and this f
3560: 69 6c 65 20 65 78 69 73 74 73 2c 20 74 68 65 6e  ile exists, then
3570: 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20   </pre><pre>    
3580: 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20  |    |          
3590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
35a0: 20 20 20 20 20 20 20 20 20 20 23 20 69 74 20 69            # it i
35b0: 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  s automatically 
35c0: 63 61 6c 6c 65 64 20 62 79 20 74 68 65 20 6d 6d  called by the mm
35d0: 6d 76 5f 73 69 6c 6b 65 78 65 63 3c 2f 70 72 65  mv_silkexec</pre
35e0: 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c  ><pre>    |    |
35f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3610: 20 20 20 20 23 20 61 66 74 65 72 20 74 68 65 20      # after the 
3620: 62 75 69 6c 64 2e 20 49 74 20 6d 75 73 74 20 62  build. It must b
3630: 65 20 61 62 6c 65 20 74 6f 20 68 61 6e 64 6c 65  e able to handle
3640: 20 61 20 63 61 73 65 2c 20 3c 2f 70 72 65 3e 3c   a case, </pre><
3650: 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20  pre>    |    |  
3660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3680: 20 20 23 20 77 68 65 72 65 20 74 68 65 72 65 20    # where there 
3690: 69 73 20 6e 6f 20 63 6f 70 79 20 6f 66 20 74 68  is no copy of th
36a0: 65 20 63 61 63 68 65 2e 3c 2f 70 72 65 3e 3c 2f  e cache.</pre></
36b0: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
36c0: 20 20 7c 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20    |</pre><pre>  
36d0: 20 20 7c 20 20 20 20 2b 2d 2d 75 70 73 74 72 65    |    +--upstre
36e0: 61 6d 5f 64 65 6c 69 76 65 72 61 62 6c 65 73 20  am_deliverables 
36f0: 23 20 69 73 20 61 20 66 6f 6c 64 65 72 20 66 6f  # is a folder fo
3700: 72 20 75 6e 70 61 74 63 68 65 64 2c 20 75 6e 6d  r unpatched, unm
3710: 6f 64 69 66 69 65 64 2c 20 6f 72 69 67 69 6e 61  odified, origina
3720: 6c 73 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20  ls</pre><pre>   
3730: 20 7c 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20   |</pre><pre>   
3740: 20 2b 2d 2d 62 75 69 6c 64 20 20 23 20 69 73 20   +--build  # is 
3750: 64 65 6c 65 74 65 64 20 62 79 20 74 68 65 20 6d  deleted by the m
3760: 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 20 65 76 65  mmv_silkexec eve
3770: 72 79 20 74 69 6d 65 20 62 65 66 6f 72 65 20 74  ry time before t
3780: 68 65 20 73 69 6c 6b 65 78 61 70 70 20 69 73 20  he silkexapp is 
3790: 62 75 69 6c 74 20 2e 3c 2f 70 72 65 3e 3c 2f 70  built .</pre></p
37a0: 72 65 3e 0a 3c 70 72 65 3e 3c 70 72 65 3e 20 20  re>.<pre><pre>  
37b0: 20 20 20 20 20 20 20 7c 20 20 20 20 23 20 54 68         |    # Th
37c0: 65 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 20  e mmmv_silkexec 
37d0: 73 65 74 73 20 69 74 73 20 66 69 6c 65 20 70 65  sets its file pe
37e0: 72 6d 69 73 73 69 6f 6e 73 20 72 65 63 75 72 73  rmissions recurs
37f0: 69 76 65 6c 79 20 3c 2f 70 72 65 3e 3c 70 72 65  ively </pre><pre
3800: 3e 20 20 20 20 20 20 20 20 20 7c 20 20 20 20 23  >         |    #
3810: 20 74 6f 20 30 37 41 42 20 62 65 66 6f 72 65 20   to 07AB before 
3820: 65 78 65 63 75 74 69 6e 67 20 74 68 65 20 62 75  executing the bu
3830: 69 6c 64 5f 73 63 72 69 70 74 2e 62 61 73 68 2e  ild_script.bash.
3840: 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20   </pre><pre>    
3850: 20 20 20 20 20 7c 20 20 20 20 23 20 54 68 65 20       |    # The 
3860: 41 20 61 6e 64 20 74 68 65 20 42 20 61 72 65 20  A and the B are 
3870: 74 68 65 20 73 61 6d 65 20 61 73 20 77 69 74 68  the same as with
3880: 20 74 68 65 20 73 72 63 20 66 6f 6c 64 65 72 2e   the src folder.
3890: 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 20  </pre><pre>     
38a0: 20 20 20 20 7c 20 3c 2f 70 72 65 3e 3c 70 72 65      | </pre><pre
38b0: 3e 20 20 20 20 20 20 20 20 20 2b 2d 2d 62 69 6e  >         +--bin
38c0: 20 23 20 69 73 20 74 68 65 20 74 61 72 67 65 74   # is the target
38d0: 20 6f 66 20 74 68 65 20 73 69 6c 6b 65 78 61 70   of the silkexap
38e0: 70 20 62 69 6e 20 66 6f 6c 64 65 72 20 73 79 6d  p bin folder sym
38f0: 6c 69 6e 6b 2e 20 54 68 69 73 20 66 6f 6c 64 65  link. This folde
3900: 72 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20  r </pre><pre>   
3910: 20 20 20 20 20 20 7c 20 20 20 20 20 20 23 20 69        |      # i
3920: 73 20 63 72 65 61 74 65 64 20 61 75 74 6f 6d 61  s created automa
3930: 74 69 63 61 6c 6c 79 20 62 65 66 6f 72 65 20 74  tically before t
3940: 68 65 20 62 75 69 6c 64 5f 73 63 72 69 70 74 2e  he build_script.
3950: 62 61 73 68 20 69 73 20 72 75 6e 2e 3c 2f 70 72  bash is run.</pr
3960: 65 3e 3c 70 72 65 3e 20 20 20 20 20 20 20 20 20  e><pre>         
3970: 7c 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20  |</pre><pre>    
3980: 20 20 20 20 20 2b 2d 2d 64 6f 63 20 23 20 61 6e       +--doc # an
3990: 20 6f 70 74 69 6f 6e 61 6c 20 66 6f 6c 64 65 72   optional folder
39a0: 20 74 68 61 74 20 69 73 20 6d 65 61 6e 74 20 74   that is meant t
39b0: 6f 20 62 65 20 63 72 65 61 74 65 64 20 62 79 20  o be created by 
39c0: 74 68 65 20 62 75 69 6c 64 5f 73 63 72 69 70 74  the build_script
39d0: 2e 62 61 73 68 20 2e 3c 2f 70 72 65 3e 3c 70 72  .bash .</pre><pr
39e0: 65 3e 20 20 20 20 20 20 20 20 20 7c 20 20 20 20  e>         |    
39f0: 20 20 23 20 49 66 20 74 68 69 73 20 66 6f 6c 64    # If this fold
3a00: 65 72 20 65 78 69 73 74 73 20 61 6e 64 20 74 68  er exists and th
3a10: 65 20 62 75 69 6c 64 5f 73 63 72 69 70 74 2e 62  e build_script.b
3a20: 61 73 68 20 68 61 73 20 3c 2f 70 72 65 3e 3c 70  ash has </pre><p
3a30: 72 65 3e 20 20 20 20 20 20 20 20 20 7c 20 20 20  re>         |   
3a40: 20 20 20 23 20 65 78 69 74 65 64 20 77 69 74 68     # exited with
3a50: 6f 75 74 20 61 6e 79 20 65 72 72 6f 72 73 2c 20  out any errors, 
3a60: 69 64 20 65 73 74 20 77 69 74 68 20 65 72 72 6f  id est with erro
3a70: 72 20 63 6f 64 65 20 30 2c 20 3c 2f 70 72 65 3e  r code 0, </pre>
3a80: 3c 70 72 65 3e 20 20 20 20 20 20 20 20 20 7c 20  <pre>         | 
3a90: 20 20 20 20 20 23 20 74 68 65 6e 20 6d 6d 6d 76       # then mmmv
3aa0: 5f 73 69 6c 6b 65 78 65 63 20 63 72 65 61 74 65  _silkexec create
3ab0: 73 20 61 20 73 79 6d 6c 69 6e 6b 20 74 6f 20 74  s a symlink to t
3ac0: 68 69 73 20 66 6f 6c 64 65 72 20 3c 2f 70 72 65  his folder </pre
3ad0: 3e 3c 70 72 65 3e 20 20 20 20 20 20 20 20 20 7c  ><pre>         |
3ae0: 20 20 20 20 20 20 23 20 66 72 6f 6d 20 74 68 65        # from the
3af0: 20 73 69 6c 6b 65 78 61 70 70 20 66 6f 6c 64 65   silkexapp folde
3b00: 72 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20  r.</pre><pre>   
3b10: 20 20 20 20 20 20 7c 3c 2f 70 72 65 3e 3c 70 72        |</pre><pr
3b20: 65 3e 20 20 20 20 20 20 20 20 20 2b 2d 2d 73 69  e>         +--si
3b30: 6c 6b 65 78 61 70 70 5f 63 6f 6e 74 72 6f 6c 20  lkexapp_control 
3b40: 20 23 20 63 6f 70 79 20 6f 66 20 74 68 65 20 66   # copy of the f
3b50: 6f 6c 64 65 72 20 66 72 6f 6d 20 74 68 65 20 73  older from the s
3b60: 72 63 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 62 72  rc</pre><pre><br
3b70: 3e 0a 0d 0a 0d 0a 3c 2f 70 72 65 3e 0d 0a 3c 2f  >.....</pre>..</
3b80: 70 72 65 3e 0a 0a 3c 70 3e 53 69 6c 6b 65 78 61  pre>..<p>Silkexa
3b90: 70 70 73 20 61 72 65 20 69 6e 73 74 61 6c 6c 65  pps are installe
3ba0: 64 2f 75 6e 70 61 63 6b 65 64 20 74 6f 3c 2f 70  d/unpacked to</p
3bb0: 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 7e 2f 2e 73 69  >.<ul>.<li>~/.si
3bc0: 6c 6b 74 6f 72 72 65 6e 74 2f 6d 6d 6d 76 5f 73  lktorrent/mmmv_s
3bd0: 69 6c 6b 65 78 65 63 2f 73 69 6c 6b 65 78 61 70  ilkexec/silkexap
3be0: 70 73 2f 26 6c 74 3b 76 61 72 69 6f 75 73 20 66  ps/&lt;various f
3bf0: 6f 6c 64 65 72 73 20 74 68 61 74 20 68 61 76 65  olders that have
3c00: 20 74 68 65 69 72 0a 6e 61 6d 65 20 64 65 72 69   their.name deri
3c10: 76 65 64 20 66 72 6f 6d 20 73 69 6c 6b 65 78 61  ved from silkexa
3c20: 70 70 20 53 69 6c 6b 74 6f 72 72 65 6e 74 20 70  pp Silktorrent p
3c30: 61 63 6b 65 74 20 6e 61 6d 65 26 67 74 3b 2f 26  acket name&gt;/&
3c40: 6c 74 3b 53 69 6c 6b 65 78 61 70 70 0a 53 69 6c  lt;Silkexapp.Sil
3c50: 6b 74 6f 72 72 65 6e 74 20 70 61 63 6b 65 74 20  ktorrent packet 
3c60: 6e 61 6d 65 26 67 74 3b 5f 64 69 72 3c 2f 6c 69  name&gt;_dir</li
3c70: 3e 0a 3c 2f 75 6c 3e 0a 0a 3c 70 3e 54 6f 20 6d  >.</ul>..<p>To m
3c80: 61 6b 65 20 69 74 20 70 6f 73 73 69 62 6c 65 20  ake it possible 
3c90: 74 6f 20 73 68 61 72 65 20 73 69 6c 6b 65 78 61  to share silkexa
3ca0: 70 70 73 20 62 65 74 77 65 65 6e 20 64 69 66 66  pps between diff
3cb0: 65 72 65 6e 74 20 75 73 65 72 73 20 6f 66 20 61  erent users of a
3cc0: 20 73 61 6d 65 0a 73 79 73 74 65 6d 2c 20 70 61   same.system, pa
3cd0: 63 6b 61 67 65 73 20 61 72 65 20 61 6c 6c 6f 77  ckages are allow
3ce0: 65 64 20 74 6f 20 61 73 73 75 6d 65 20 74 68 61  ed to assume tha
3cf0: 74 20 74 68 65 79 20 68 61 76 65 20 77 72 69 74  t they have writ
3d00: 65 20 61 63 63 65 73 73 20 6f 6e 6c 79 20 74 6f  e access only to
3d10: 26 6e 62 73 70 3b 3c 2f 70 3e 0a 0a 3c 70 3e 3c  &nbsp;</p>..<p><
3d20: 2f 70 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 2f 74 6d  /p>.<ul>.<li>/tm
3d30: 70 3c 2f 6c 69 3e 0a 3c 6c 69 3e 7e 2f 2e 73 69  p</li>.<li>~/.si
3d40: 6c 6b 74 6f 72 72 65 6e 74 2f 6d 6d 6d 76 5f 73  lktorrent/mmmv_s
3d50: 69 6c 6b 65 78 65 63 2f 61 70 70 6c 69 63 61 74  ilkexec/applicat
3d60: 69 6f 6e 73 5f 77 72 69 74 65 5f 61 72 65 61 2f  ions_write_area/
3d70: 26 6c 74 3b 60 77 68 6f 61 6d 69 60 26 67 74 3b  &lt;`whoami`&gt;
3d80: 2f 26 6c 74 3b 72 65 6c 61 74 69 76 65 0a 70 61  /&lt;relative.pa
3d90: 74 68 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20  th from package 
3da0: 63 6f 6c 6c 65 63 74 69 6f 6e 20 72 6f 6f 74 26  collection root&
3db0: 67 74 3b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 26 6c 74  gt;</li>.<li>&lt
3dc0: 3b 6c 69 73 74 20 6f 66 20 66 6f 6c 64 65 72 73  ;list of folders
3dd0: 20 74 68 61 74 20 63 61 6e 20 62 65 20 71 75 65   that can be que
3de0: 72 69 65 64 20 62 79 20 22 6d 6d 6d 76 5f 73 69  ried by "mmmv_si
3df0: 6c 6b 65 78 65 63 20 73 79 73 5f 26 6c 74 3b 73  lkexec sys_&lt;s
3e00: 6f 6d 65 74 68 69 6e 67 26 67 74 3b 2c 0a 66 6f  omething&gt;,.fo
3e10: 72 20 65 78 61 6d 70 6c 65 3a 20 6d 6d 6d 76 5f  r example: mmmv_
3e20: 73 69 6c 6b 65 78 65 63 20 73 79 73 5f 73 5f 66  silkexec sys_s_f
3e30: 70 5f 72 61 6d 64 69 73 6b 5f 31 20 26 67 74 3b  p_ramdisk_1 &gt;
3e40: 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 3c 70 3e  </li>.</ul>..<p>
3e50: 3c 2f 70 3e 0a 0a 3c 70 3e 54 68 65 20 6d 6d 6d  </p>..<p>The mmm
3e60: 76 5f 73 69 6c 6b 65 78 65 63 20 70 72 65 70 72  v_silkexec prepr
3e70: 6f 63 65 73 73 65 73 20 73 69 6c 6b 65 78 61 70  ocesses silkexap
3e80: 70 20 6e 61 6d 65 73 20 62 79 20 72 65 6d 6f 76  p names by remov
3e90: 69 6e 67 20 61 20 73 69 6e 67 6c 65 20 69 6e 73  ing a single ins
3ea0: 74 61 6e 63 65 0a 6f 66 20 74 68 65 20 66 6f 6c  tance.of the fol
3eb0: 6c 6f 77 69 6e 67 20 70 72 65 66 69 78 65 73 3a  lowing prefixes:
3ec0: 3c 62 3e 20 22 73 79 73 5f 22 2c 20 22 75 73 72  <b> "sys_", "usr
3ed0: 5f 22 2e 3c 2f 62 3e 20 41 20 73 69 6c 6b 65 78  _".</b> A silkex
3ee0: 61 70 70 20 74 68 61 74 20 69 73 20 6f 6e 20 50  app that is on P
3ef0: 41 54 48 0a 61 6e 64 20 68 61 73 20 61 20 6e 61  ATH.and has a na
3f00: 6d 65 20 6f 66 20 22 73 79 73 5f 66 6f 6f 22 20  me of "sys_foo" 
3f10: 73 68 6f 75 6c 64 20 62 65 20 65 78 65 63 75 74  should be execut
3f20: 65 64 20 61 73 20 22 6d 6d 6d 76 5f 73 69 6c 6b  ed as "mmmv_silk
3f30: 65 78 65 63 20 75 73 72 5f 73 79 73 5f 66 6f 6f  exec usr_sys_foo
3f40: 22 2e 0a 54 68 65 3c 62 3e 20 70 72 65 66 69 78  "..The<b> prefix
3f50: 20 22 73 79 73 5f 22 20 69 73 20 72 65 73 65 72   "sys_" is reser
3f60: 76 65 64 20 66 6f 72 20 6d 6d 6d 76 5f 73 69 6c  ved for mmmv_sil
3f70: 6b 65 78 65 63 20 63 6f 6d 6d 61 6e 64 73 2e 3c  kexec commands.<
3f80: 2f 62 3e 20 50 72 65 70 72 6f 63 65 73 73 69 6e  /b> Preprocessin
3f90: 67 0a 69 73 20 6e 6f 74 20 61 70 70 6c 69 65 64  g.is not applied
3fa0: 2c 20 77 68 65 6e 20 74 68 65 20 73 69 6c 6b 65  , when the silke
3fb0: 78 61 70 70 20 65 78 65 63 75 74 61 62 6c 65 20  xapp executable 
3fc0: 69 73 20 72 65 66 65 72 72 65 64 20 74 68 72 6f  is referred thro
3fd0: 75 67 68 20 61 20 66 75 6c 6c 20 70 61 74 68 2e  ugh a full path.
3fe0: 0a 26 6e 62 73 70 3b 54 68 65 20 6d 6d 6d 76 5f  .&nbsp;The mmmv_
3ff0: 73 69 6c 6b 65 78 65 63 20 73 65 74 73 20 74 68  silkexec sets th
4000: 65 20 76 61 6c 75 65 73 20 6f 66 20 73 69 6c 6b  e values of silk
4010: 65 78 61 70 70 20 72 75 6e 74 69 6d 65 20 61 6e  exapp runtime an
4020: 64 20 62 75 69 6c 64 74 69 6d 65 0a 65 6e 69 72  d buildtime.enir
4030: 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 73  onment variables
4040: 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68   according to th
4050: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 72 65 63  e following prec
4060: 65 64 65 6e 63 65 3a 26 6e 62 73 70 3b 3c 2f 70  edence:&nbsp;</p
4070: 3e 0a 0a 3c 70 3e 3c 2f 70 3e 0a 3c 6f 6c 3e 0a  >..<p></p>.<ol>.
4080: 3c 6c 69 3e 49 66 20 63 6f 6e 66 69 67 75 72 61  <li>If configura
4090: 74 69 6f 6e 20 65 78 69 73 74 73 2c 20 6f 76 65  tion exists, ove
40a0: 72 72 69 64 65 20 74 68 65 20 76 61 6c 75 65 20  rride the value 
40b0: 6f 66 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65  of the environme
40c0: 6e 74 20 76 61 72 69 61 62 6c 65 2e 3c 2f 6c 69  nt variable.</li
40d0: 3e 0a 3c 6c 69 3e 50 72 65 66 69 78 20 74 68 65  >.<li>Prefix the
40e0: 20 76 61 6c 75 65 20 66 72 6f 6d 20 74 68 65 20   value from the 
40f0: 73 74 65 70 20 31 20 77 69 74 68 20 74 68 65 20  step 1 with the 
4100: 76 61 6c 75 65 20 66 72 6f 6d 20 74 68 65 20 63  value from the c
4110: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 66 69 6c  onfiguration.fil
4120: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 72 65 66  e.</li>.<li>Pref
4130: 69 78 20 74 68 65 20 76 61 6c 75 65 20 66 72 6f  ix the value fro
4140: 6d 20 74 68 65 20 73 74 65 70 20 32 20 77 69 74  m the step 2 wit
4150: 68 20 74 68 65 20 66 75 6c 6c 20 70 61 74 68 20  h the full path 
4160: 6f 66 20 74 68 65 20 73 69 6c 6b 65 78 61 70 70  of the silkexapp
4170: 20 62 69 6e 0a 66 6f 6c 64 65 72 2e 3c 2f 6c 69   bin.folder.</li
4180: 3e 0a 3c 6c 69 3e 26 6c 74 3b 45 78 65 63 75 74  >.<li>&lt;Execut
4190: 65 20 74 68 65 20 65 78 65 63 75 74 61 62 6c 65  e the executable
41a0: 20 66 72 6f 6d 20 74 68 65 20 73 69 6c 6b 65 78   from the silkex
41b0: 61 70 70 20 62 69 6e 20 66 6f 6c 64 65 72 20 6f  app bin folder o
41c0: 72 0a 73 69 6c 6b 65 78 61 70 70 5f 63 6f 6e 74  r.silkexapp_cont
41d0: 72 6f 6c 20 66 6f 6c 64 65 72 2e 26 67 74 3b 3c  rol folder.&gt;<
41e0: 2f 6c 69 3e 0a 3c 2f 6f 6c 3e 0a 0a 3c 70 3e 3c  /li>.</ol>..<p><
41f0: 2f 70 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c 2f 70  /p>..<p><br>.</p
4200: 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a  >..<p><br>.</p>.
4210: 0a 3c 68 31 3e 54 65 73 74 69 6e 67 20 28 49 6e  .<h1>Testing (In
4220: 63 6c 75 64 69 6e 67 20 56 65 72 69 66 69 63 61  cluding Verifica
4230: 74 69 6f 6e 20 61 6e 64 20 41 75 64 69 74 73 29  tion and Audits)
4240: 3c 2f 68 31 3e 0a 0a 3c 70 3e 53 69 6c 6b 65 78  </h1>..<p>Silkex
4250: 65 63 61 70 70 20 69 73 20 65 78 65 63 75 74 65  ecapp is execute
4260: 64 20 6f 6e 6c 79 2c 20 69 66 20 61 6c 6c 20 6f  d only, if all o
4270: 66 20 69 74 73 20 64 65 70 65 6e 64 65 6e 63 69  f its dependenci
4280: 65 73 20 68 61 76 65 20 62 65 65 6e 0a 72 65 63  es have been.rec
4290: 75 72 73 69 76 65 6c 79 20 61 75 64 69 74 65 64  ursively audited
42a0: 2f 74 65 73 74 65 64 20 62 79 20 74 72 75 73 74  /tested by trust
42b0: 65 64 20 70 61 72 74 69 65 73 2e 20 44 69 66 66  ed parties. Diff
42c0: 65 72 65 6e 74 20 70 61 72 74 69 65 73 20 74 72  erent parties tr
42d0: 75 73 74 0a 64 69 66 66 65 72 65 6e 74 20 6f 74  ust.different ot
42e0: 68 65 72 20 70 61 72 74 69 65 73 2e 20 54 72 75  her parties. Tru
42f0: 73 74 20 69 73 20 61 20 6d 75 6c 74 69 64 69 6d  st is a multidim
4300: 65 6e 73 69 6f 6e 61 6c 20 76 61 6c 75 65 2e 20  ensional value. 
4310: 41 20 76 65 72 79 20 6b 69 6e 64 68 65 61 72 74  A very kindheart
4320: 65 64 0a 61 6e 64 20 6e 6f 74 20 63 6f 72 72 75  ed.and not corru
4330: 70 74 20 70 65 72 73 6f 6e 20 63 61 6e 20 62 65  pt person can be
4340: 20 74 6f 74 61 6c 6c 79 20 75 6e 74 72 75 73 74   totally untrust
4350: 77 6f 72 74 68 79 20 66 72 6f 6d 20 74 68 65 69  worthy from thei
4360: 72 20 63 61 70 61 62 69 6c 69 74 69 65 73 0a 70  r capabilities.p
4370: 6f 69 6e 74 20 6f 66 20 76 69 65 77 2e 20 4f 6e  oint of view. On
4380: 20 74 68 65 20 6f 74 68 65 72 20 68 61 6e 64 2c   the other hand,
4390: 20 73 6f 6d 65 74 69 6d 65 73 2c 20 61 74 20 73   sometimes, at s
43a0: 6f 6d 65 20 6e 61 72 72 6f 77 20 63 6f 6e 74 65  ome narrow conte
43b0: 78 74 73 2c 20 65 6e 65 6d 69 65 73 0a 63 61 6e  xts, enemies.can
43c0: 20 62 65 20 6d 6f 72 65 20 74 72 75 73 74 77 6f   be more trustwo
43d0: 72 74 68 79 20 74 68 61 6e 20 66 72 69 65 6e 64  rthy than friend
43e0: 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20  s. For example, 
43f0: 65 6e 65 6d 69 65 73 20 6d 69 67 68 74 20 68 61  enemies might ha
4400: 76 65 20 61 20 67 6f 6f 64 0a 74 72 61 63 6b 20  ve a good.track 
4410: 72 65 63 6f 72 64 20 6f 66 20 66 69 6e 65 20 73  record of fine s
4420: 6b 69 6c 6c 73 20 61 6e 64 20 62 65 69 6e 67 20  kills and being 
4430: 72 69 67 6f 72 6f 75 73 20 61 6e 64 20 74 68 65  rigorous and the
4440: 79 20 6d 69 67 68 74 20 75 73 65 20 73 6f 6d 65  y might use some
4450: 0a 63 6f 6d 70 6f 6e 65 6e 74 2c 20 73 6f 66 74  .component, soft
4460: 77 61 72 65 20 70 61 63 6b 61 67 65 2c 20 61 74  ware package, at
4470: 20 73 6f 6d 65 20 73 65 63 75 72 69 74 79 20 77   some security w
4480: 69 73 65 20 65 78 74 72 65 6d 65 6c 79 20 63 72  ise extremely cr
4490: 69 74 69 63 61 6c 20 72 6f 6c 65 2c 0a 77 68 69  itical role,.whi
44a0: 6c 65 20 62 65 69 6e 67 20 76 65 72 79 20 72 69  le being very ri
44b0: 67 6f 72 6f 75 73 20 61 74 20 74 68 65 20 63 6f  gorous at the co
44c0: 6e 73 74 72 75 63 74 69 6f 6e 20 6f 66 20 74 68  nstruction of th
44d0: 65 69 72 20 73 6f 66 74 77 61 72 65 20 63 6f 6d  eir software com
44e0: 70 6f 6e 65 6e 74 2e 3c 2f 70 3e 0a 0a 3c 70 3e  ponent.</p>..<p>
44f0: 47 69 76 65 6e 20 74 68 61 74 0a 3c 61 20 68 72  Given that.<a hr
4500: 65 66 3d 22 68 74 74 70 3a 2f 2f 6d 61 72 74 69  ef="http://marti
4510: 6e 2e 73 6f 66 74 66 31 2e 63 6f 6d 2f 67 2f 79  n.softf1.com/g/y
4520: 65 6c 6c 6f 77 5f 73 6f 61 70 5f 6f 70 65 72 61  ellow_soap_opera
4530: 5f 62 6c 6f 67 2f 74 68 65 2d 66 75 74 75 72 65  _blog/the-future
4540: 2d 6f 66 2d 73 65 63 75 72 69 74 79 2d 61 75 64  -of-security-aud
4550: 69 74 73 2d 65 70 69 73 6f 64 65 2d 30 22 3e 74  its-episode-0">t
4560: 68 65 0a 6f 6e 6c 79 20 70 72 6f 70 65 72 20 77  he.only proper w
4570: 61 79 20 74 6f 20 76 65 72 69 66 79 2f 72 65 76  ay to verify/rev
4580: 69 65 77 20 63 6f 64 65 20 69 73 20 74 6f 20 73  iew code is to s
4590: 74 75 64 79 20 69 74 20 69 6e 20 61 20 66 75 6c  tudy it in a ful
45a0: 6c 79 20 61 75 74 6f 6d 61 74 65 64 20 77 61 79  ly automated way
45b0: 3c 2f 61 3e 3c 69 3e 28 3c 61 20 68 72 65 66 3d  </a><i>(<a href=
45c0: 22 68 74 74 70 73 3a 2f 2f 61 72 63 68 69 76 65  "https://archive
45d0: 2e 69 73 2f 68 33 48 4a 34 22 3e 61 72 63 68 69  .is/h3HJ4">archi
45e0: 76 61 6c 0a 63 6f 70 79 3c 2f 61 3e 29 3c 2f 69  val.copy</a>)</i
45f0: 3e 2c 20 74 68 65 72 65 20 68 61 73 20 74 6f 20  >, there has to 
4600: 62 65 20 61 20 77 61 79 20 74 6f 20 73 75 62 73  be a way to subs
4610: 63 72 69 62 65 20 74 6f 20 74 68 65 20 74 65 73  cribe to the tes
4620: 74 69 6e 67 2f 76 65 72 69 66 69 63 61 74 69 6f  ting/verificatio
4630: 6e 0a 73 79 73 74 65 6d 20 6f 66 20 74 68 65 20  n.system of the 
4640: 74 72 75 73 74 65 64 20 70 61 72 74 69 65 73 2e  trusted parties.
4650: 20 54 6f 20 61 76 6f 69 64 20 61 20 44 65 6e 69   To avoid a Deni
4660: 61 6c 20 6f 66 20 53 65 72 76 69 63 65 20 61 74  al of Service at
4670: 74 61 63 6b 20 62 79 20 68 61 63 6b 69 6e 67 0a  tack by hacking.
4680: 69 6e 74 6f 20 74 68 65 20 74 65 73 74 69 6e 67  into the testing
4690: 2f 76 65 72 69 66 69 63 61 74 69 6f 6e 20 73 79  /verification sy
46a0: 73 74 65 6d 73 20 6f 66 20 6f 6e 65 20 6f 66 20  stems of one of 
46b0: 74 68 65 20 74 72 75 73 74 65 64 20 70 61 72 74  the trusted part
46c0: 69 65 73 2c 20 74 68 65 20 6c 6f 63 61 6c 0a 73  ies, the local.s
46d0: 65 74 74 69 6e 67 73 20 6f 66 20 74 68 65 20 6d  ettings of the m
46e0: 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 20 73 68 6f  mmv_silkexec sho
46f0: 75 6c 64 20 74 72 65 61 74 20 61 20 74 65 73 74  uld treat a test
4700: 20 66 61 69 6c 75 72 65 20 6f 66 20 61 20 66 6f   failure of a fo
4710: 72 6d 65 72 6c 79 0a 61 63 63 65 70 74 65 64 20  rmerly.accepted 
4720: 63 6f 6d 70 6f 6e 65 6e 74 20 61 73 20 61 20 74  component as a t
4730: 69 6d 65 64 20 77 61 72 6e 69 6e 67 2c 20 77 68  imed warning, wh
4740: 65 72 65 20 74 68 65 20 77 61 72 6e 69 6e 67 20  ere the warning 
4750: 73 74 61 74 65 20 6d 6f 76 65 73 20 74 6f 20 61  state moves to a
4760: 0a 62 6c 6f 63 6b 65 64 2f 66 61 69 6c 65 64 20  .blocked/failed 
4770: 73 74 61 74 65 20 77 69 74 68 20 61 20 64 65 6c  state with a del
4780: 61 79 2e 20 54 68 65 20 64 65 6c 61 79 20 67 69  ay. The delay gi
4790: 76 65 73 20 74 68 65 20 74 72 75 73 74 65 64 20  ves the trusted 
47a0: 70 61 72 74 79 20 74 69 6d 65 20 74 6f 0a 68 61  party time to.ha
47b0: 6e 64 6c 65 20 74 68 65 20 68 61 63 6b 2e 3c 2f  ndle the hack.</
47c0: 70 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c 2f 70 3e  p>..<p><br>.</p>
47d0: 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a 0a  ..<p><br>.</p>..
47e0: 3c 68 31 3e 43 6f 6d 70 6f 6e 65 6e 74 73 20 74  <h1>Components t
47f0: 6f 20 53 74 75 64 79 3c 2f 68 31 3e 0a 0a 3c 70  o Study</h1>..<p
4800: 3e 3c 2f 70 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 3c  ></p>.<ul>.<li><
4810: 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f  a href="https://
4820: 66 69 72 65 6a 61 69 6c 2e 77 6f 72 64 70 72 65  firejail.wordpre
4830: 73 73 2e 63 6f 6d 2f 22 3e 46 69 72 65 6a 61 69  ss.com/">Firejai
4840: 6c 3c 2f 61 3e 20 28 3c 61 20 68 72 65 66 3d 22  l</a> (<a href="
4850: 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63  https://github.c
4860: 6f 6d 2f 6e 65 74 62 6c 75 65 33 30 2f 66 69 72  om/netblue30/fir
4870: 65 6a 61 69 6c 22 3e 73 72 63 3c 2f 61 3e 29 0a  ejail">src</a>).
4880: 69 73 20 61 20 4c 69 6e 75 78 20 73 70 65 63 69  is a Linux speci
4890: 66 69 63 20 63 6f 6d 70 6f 6e 65 6e 74 2c 20 62  fic component, b
48a0: 75 74 20 69 74 20 6d 69 67 68 74 20 62 65 20 61  ut it might be a
48b0: 20 75 73 65 66 75 6c 20 61 64 64 2d 6f 6e 20 6f   useful add-on o
48c0: 6e 20 4c 69 6e 75 78 2e 3c 2f 6c 69 3e 0a 3c 2f  n Linux.</li>.</
48d0: 75 6c 3e 0a 0a 3c 70 3e 3c 2f 70 3e 0a 0a 3c 70  ul>..<p></p>..<p
48e0: 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 3c  ><br>.</p>..<p><
48f0: 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 68 31 3e 3c 61  br>.</p>..<h1><a
4900: 20 68 72 65 66 3d 22 2e 2f 77 69 6b 69 3f 6e 61   href="./wiki?na
4910: 6d 65 3d 45 78 70 65 72 69 6d 65 6e 74 3a 2b 6d  me=Experiment:+m
4920: 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 3a 2b 73 75  mmv_silkexec:+su
4930: 62 2d 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73  b-specifications
4940: 3a 22 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c 0a  :">Experimental.
4950: 53 75 62 73 70 65 63 69 66 69 63 61 74 69 6f 6e  Subspecification
4960: 73 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 3c 70 3e 3c  s</a></h1>..<p><
4970: 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 68 31 3e 3c 61  br>.</p>..<h1><a
4980: 20 68 72 65 66 3d 22 2e 2f 77 69 6b 69 3f 6e 61   href="./wiki?na
4990: 6d 65 3d 45 78 70 65 72 69 6d 65 6e 74 3a 2b 6d  me=Experiment:+m
49a0: 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 3a 2b 52 65  mmv_silkexec:+Re
49b0: 66 65 72 65 6e 63 65 73 22 3e 52 65 66 65 72 65  ferences">Refere
49c0: 6e 63 65 73 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 3c  nces</a></h1>..<
49d0: 70 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a 0a 5a 20 62  p><br>.</p>..Z b
49e0: 36 61 32 62 34 32 30 64 35 31 63 66 33 64 31 39  6a2b420d51cf3d19
49f0: 35 63 63 39 66 38 32 34 34 64 62 65 31 39 65 0a  5cc9f8244dbe19e.