Hex Artifact Content
Not logged in

Artifact c194d666011b40941ba27d9b505a7abdf5c5f5d3:

Wiki page [Experiment: mmmv_silkexec: Deprecated Version 1] by martin_vahi on 2017-03-19 20:47:44.
0000: 44 20 32 30 31 37 2d 30 33 2d 31 39 54 32 30 3a  D 2017-03-19T20:
0010: 34 37 3a 34 34 2e 38 37 31 0a 4c 20 45 78 70 65  47:44.871.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 3a 5c 73 44 65 70 72 65 63 61  lkexec:\sDepreca
0040: 74 65 64 5c 73 56 65 72 73 69 6f 6e 5c 73 31 0a  ted\sVersion\s1.
0050: 50 20 35 38 63 61 66 66 61 37 33 65 36 65 38 39  P 58caffa73e6e89
0060: 64 39 37 36 35 34 34 65 64 61 39 64 38 34 65 38  d976544eda9d84e8
0070: 66 35 63 66 66 36 37 39 37 35 0a 55 20 6d 61 72  f5cff67975.U mar
0080: 74 69 6e 5f 76 61 68 69 0a 57 20 31 39 36 38 34  tin_vahi.W 19684
0090: 0a 3c 70 3e 3c 62 3e 3c 61 20 68 72 65 66 3d 22  .<p><b><a href="
00a0: 2e 2f 77 69 6b 69 3f 6e 61 6d 65 3d 45 78 70 65  ./wiki?name=Expe
00b0: 72 69 6d 65 6e 74 3a 2b 6d 6d 6d 76 5f 73 69 6c  riment:+mmmv_sil
00c0: 6b 65 78 65 63 22 3e 4c 69 6e 6b 20 74 6f 20 74  kexec">Link to t
00d0: 68 65 20 6d 6f 73 74 20 63 75 72 72 65 6e 74 0a  he most current.
00e0: 76 65 72 73 69 6f 6e 20 6f 66 20 6d 6d 6d 76 5f  version of mmmv_
00f0: 73 69 6c 6b 65 78 65 63 20 73 70 65 63 69 66 69  silkexec specifi
0100: 63 61 74 69 6f 6e 2e 3c 2f 61 3e 3c 2f 62 3e 3c  cation.</a></b><
0110: 2f 70 3e 0a 0a 3c 68 31 3e 3c 66 6f 6e 74 20 63  /p>..<h1><font c
0120: 6f 6c 6f 72 3d 22 23 66 66 30 30 30 30 22 3e 46  olor="#ff0000">F
0130: 6c 61 77 73 20 6f 66 20 74 68 65 20 44 65 70 72  laws of the Depr
0140: 65 63 61 74 65 64 20 56 65 72 73 69 6f 6e 3c 2f  ecated Version</
0150: 66 6f 6e 74 3e 3c 2f 68 31 3e 0a 0a 3c 70 3e 54  font></h1>..<p>T
0160: 68 65 20 6d 61 69 6e 20 6c 65 73 73 6f 6e 20 66  he main lesson f
0170: 72 6f 6d 20 74 68 65 20 3c 61 20 68 72 65 66 3d  rom the <a href=
0180: 22 2e 2f 61 72 74 69 66 61 63 74 2f 34 33 33 65  "./artifact/433e
0190: 66 61 61 33 35 61 33 36 30 64 64 63 22 3e 73 69  faa35a360ddc">si
01a0: 6c 6b 74 6f 72 72 65 6e 74 5f 70 61 63 6b 61 67  lktorrent_packag
01b0: 65 72 5f 74 31 5f 32 30 31 37 5f 30 33 5f 31 34  er_t1_2017_03_14
01c0: 2e 62 61 73 68 3c 2f 61 3e 0a 69 73 20 74 68 61  .bash</a>.is tha
01d0: 74 20 74 6f 20 61 76 6f 69 64 20 72 65 69 6d 70  t to avoid reimp
01e0: 6c 65 6d 65 6e 74 69 6e 67 20 76 61 72 69 6f 75  lementing variou
01f0: 73 20 61 64 76 61 6e 63 65 64 20 73 6f 66 74 77  s advanced softw
0200: 61 72 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20  are development 
0210: 74 6f 6f 6c 73 2c 0a 70 72 6f 6a 65 63 74 73 20  tools,.projects 
0220: 73 68 6f 75 6c 64 20 62 65 20 69 6d 70 6c 65 6d  should be implem
0230: 65 6e 74 65 64 20 62 79 20 75 73 69 6e 67 20 74  ented by using t
0240: 68 65 20 6d 6f 73 74 20 61 64 76 61 6e 63 65 64  he most advanced
0250: 20 73 6f 66 74 77 61 72 65 20 64 65 76 65 6c 6f   software develo
0260: 70 6d 65 6e 74 0a 74 6f 6f 6c 73 20 61 74 20 74  pment.tools at t
0270: 68 65 20 76 65 72 79 20 73 74 61 72 74 20 6f 66  he very start of
0280: 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 20 42 61   the project. Ba
0290: 73 68 20 69 73 20 65 78 74 72 65 6d 65 6c 79 20  sh is extremely 
02a0: 70 72 69 6d 69 74 69 76 65 2c 20 69 66 0a 63 6f  primitive, if.co
02b0: 6d 70 61 72 65 64 20 74 6f 20 52 75 62 79 2e 20  mpared to Ruby. 
02c0: 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 23 66 66  <font color="#ff
02d0: 30 30 30 30 22 3e 49 66 20 69 6e 66 6f 72 6d 61  0000">If informa
02e0: 74 69 6f 6e 20 69 73 20 65 78 63 68 61 6e 67 65  tion is exchange
02f0: 64 20 62 79 20 75 73 69 6e 67 0a 63 6f 6e 73 6f  d by using.conso
0300: 6c 65 20 61 72 67 75 6d 65 6e 74 73 2c 20 74 68  le arguments, th
0310: 65 6e 20 74 68 65 20 68 75 67 65 20 61 6e 64 20  en the huge and 
0320: 63 6f 6d 70 6c 65 78 20 61 6e 64 20 65 72 72 6f  complex and erro
0330: 72 20 70 72 6f 6e 65 20 6d 61 63 72 6f 20 70 72  r prone macro pr
0340: 6f 63 65 73 73 69 6e 67 0a 74 61 73 6b 20 63 6f  ocessing.task co
0350: 6d 65 73 20 69 6e 2e 3c 2f 66 6f 6e 74 3e 26 6e  mes in.</font>&n
0360: 62 73 70 3b 52 65 70 65 61 74 65 64 20 72 65 69  bsp;Repeated rei
0370: 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 6f 66  nitialization of
0380: 20 61 20 63 6f 6d 70 6c 65 78 20 74 6f 6f 6c 2c   a complex tool,
0390: 20 61 6e 0a 69 6e 74 65 72 70 72 65 74 65 72 2c   an.interpreter,
03a0: 20 77 61 73 74 65 73 20 61 20 6c 6f 74 20 6f 66   wastes a lot of
03b0: 20 63 6f 6d 70 75 74 61 74 69 6f 6e 61 6c 20 72   computational r
03c0: 65 73 6f 75 72 63 65 73 2e 20 54 68 65 20 6e 65  esources. The ne
03d0: 78 74 20 76 65 72 73 69 6f 6e 20 6d 69 67 68 74  xt version might
03e0: 0a 61 64 64 72 65 73 73 20 74 68 6f 73 65 20 70  .address those p
03f0: 72 6f 62 6c 65 6d 73 20 62 79 20 62 79 20 66 6f  roblems by by fo
0400: 6c 6c 6f 77 69 6e 67 20 63 68 61 6e 67 65 73 3a  llowing changes:
0410: 3c 2f 70 3e 0a 0a 3c 70 3e 3c 2f 70 3e 0a 3c 75  </p>..<p></p>.<u
0420: 6c 3e 0a 3c 6c 69 3e 41 6c 6c 20 74 68 65 20 73  l>.<li>All the s
0430: 69 6d 70 6c 65 20 62 61 73 68 20 73 63 72 69 70  imple bash scrip
0440: 74 73 20 61 6e 64 20 74 65 78 74 20 66 69 6c 65  ts and text file
0450: 73 20 61 72 65 20 6a 6f 69 6e 65 64 20 69 6e 74  s are joined int
0460: 6f 20 61 20 73 69 6e 67 6c 65 20 52 75 62 79 0a  o a single Ruby.
0470: 66 69 6c 65 20 74 68 61 74 20 73 74 6f 72 65 73  file that stores
0480: 20 74 68 65 20 76 61 6c 75 65 73 20 61 74 20 73   the values at s
0490: 6f 6d 65 20 69 6e 73 74 61 6e 63 65 20 6f 66 20  ome instance of 
04a0: 61 20 64 65 72 69 76 65 64 20 63 6c 61 73 73 2e  a derived class.
04b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 6f 6c 64 65 72  </li>.<li>Folder
04c0: 20 73 74 72 75 63 74 75 72 65 20 69 73 20 73 6f   structure is so
04d0: 6d 65 68 6f 77 20 75 6e 69 66 69 65 64 20 77 69  mehow unified wi
04e0: 74 68 20 74 68 65 20 6d 6d 6d 76 20 64 65 76 65  th the mmmv deve
04f0: 6c 6f 70 6d 65 6e 74 20 70 72 6f 6a 65 63 74 0a  lopment project.
0500: 66 6f 6c 64 65 72 20 73 74 72 75 63 74 75 72 65  folder structure
0510: 20 73 74 79 6c 65 2c 20 69 64 20 65 73 74 20 73   style, id est s
0520: 72 63 2f 64 65 76 5f 74 6f 6f 6c 73 2f 52 61 6b  rc/dev_tools/Rak
0530: 65 66 69 6c 65 2c 20 65 74 63 2e 3c 2f 6c 69 3e  efile, etc.</li>
0540: 0a 3c 6c 69 3e 54 68 65 20 64 65 76 65 6c 6f 70  .<li>The develop
0550: 6d 65 6e 74 20 52 61 6b 65 66 69 6c 65 20 63 61  ment Rakefile ca
0560: 6e 20 63 61 6c 6c 20 6d 6d 6d 76 5f 73 69 6c 6b  n call mmmv_silk
0570: 65 78 65 63 20 66 6f 72 20 70 61 74 68 73 20 6f  exec for paths o
0580: 66 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 3c  f dependencies.<
0590: 2f 6c 69 3e 0a 3c 6c 69 3e 54 6f 20 61 76 6f 69  /li>.<li>To avoi
05a0: 64 20 61 20 73 69 74 75 61 74 69 6f 6e 2c 20 77  d a situation, w
05b0: 68 65 72 65 20 61 20 72 65 70 6c 61 63 65 6d 65  here a replaceme
05c0: 6e 74 20 6f 66 20 61 20 6c 65 61 66 20 63 61 6e  nt of a leaf can
05d0: 20 74 72 69 67 67 65 72 20 74 68 65 0a 72 65 70   trigger the.rep
05e0: 6c 61 63 65 6d 65 6e 74 20 6f 66 20 61 20 77 68  lacement of a wh
05f0: 6f 6c 65 20 62 72 61 6e 63 68 20 6f 66 20 61 20  ole branch of a 
0600: 74 72 65 65 2c 20 74 68 65 20 73 69 6c 6b 65 78  tree, the silkex
0610: 61 70 70 20 69 6d 6d 65 64 69 61 74 65 20 64 65  app immediate de
0620: 70 65 6e 64 65 6e 63 69 65 73 0a 61 72 65 20 6e  pendencies.are n
0630: 6f 74 20 65 6e 63 6f 64 65 64 20 69 6e 74 6f 20  ot encoded into 
0640: 74 68 65 20 73 69 6c 6b 65 78 61 70 70 20 69 74  the silkexapp it
0650: 73 65 6c 66 2c 20 62 75 74 20 74 68 65 20 64 65  self, but the de
0660: 70 65 6e 64 65 6e 63 65 20 67 72 61 70 68 20 69  pendence graph i
0670: 73 0a 6d 61 69 6e 74 61 69 6e 65 64 20 64 79 6e  s.maintained dyn
0680: 61 6d 69 63 61 6c 6c 79 20 62 79 20 75 73 69 6e  amically by usin
0690: 67 20 73 69 6c 6b 65 78 61 70 70 20 69 6e 74 65  g silkexapp inte
06a0: 72 6e 61 6c 20 74 65 73 74 73 2e 20 54 68 65 20  rnal tests. The 
06b0: 73 69 6c 6b 65 78 61 70 70 0a 64 65 63 6c 61 72  silkexapp.declar
06c0: 65 73 20 6f 6e 6c 79 20 61 20 6c 69 73 74 20 6f  es only a list o
06d0: 66 20 74 79 70 65 5f 49 44 5f 73 20 6f 66 20 69  f type_ID_s of i
06e0: 74 73 20 69 6d 6d 65 64 69 61 74 65 20 64 65 70  ts immediate dep
06f0: 65 6e 64 65 6e 63 69 65 73 2e 20 54 68 65 0a 64  endencies. The.d
0700: 65 70 65 6e 64 65 6e 63 69 65 73 20 61 72 65 20  ependencies are 
0710: 64 65 63 6c 61 72 65 64 20 61 63 63 6f 72 64 69  declared accordi
0720: 6e 67 20 74 6f 20 74 68 65 20 64 65 70 65 6e 64  ng to the depend
0730: 65 6e 63 79 20 63 61 6c 63 75 6c 61 74 6f 72 20  ency calculator 
0740: 73 70 65 63 69 66 69 63 61 74 69 6f 6e 0a 6f 66  specification.of
0750: 20 74 68 65 20 4b 69 62 75 76 69 74 73 20 52 75   the Kibuvits Ru
0760: 62 79 20 4c 69 62 72 61 72 79 2c 20 69 64 20 65  by Library, id e
0770: 73 74 20 64 65 70 65 6e 64 65 6e 63 69 65 61 73  st dependencieas
0780: 20 61 72 65 20 64 65 63 6c 61 72 65 64 20 69 6e   are declared in
0790: 20 74 68 65 20 73 74 79 6c 65 20 6f 66 0a 28 41   the style of.(A
07a0: 20 6f 72 20 42 20 6f 72 20 43 29 20 26 61 6d 70   or B or C) &amp
07b0: 3b 20 28 44 20 6f 72 20 43 20 6f 72 20 45 29 20  ; (D or C or E) 
07c0: 26 61 6d 70 3b 20 28 62 6c 61 62 6c 61 29 2e 20  &amp; (blabla). 
07d0: 54 6f 20 61 6c 6c 6f 77 20 61 20 66 75 74 75 72  To allow a futur
07e0: 65 20 70 61 63 6b 61 67 65 20 74 6f 0a 72 65 70  e package to.rep
07f0: 6c 61 63 65 20 6d 6f 72 65 20 74 68 61 6e 20 6f  lace more than o
0800: 6e 65 20 6f 6c 64 20 70 61 63 6b 61 67 65 2c 20  ne old package, 
0810: 65 61 63 68 20 73 69 6c 6b 65 78 61 70 70 20 63  each silkexapp c
0820: 61 6e 20 68 61 76 65 20 61 20 77 68 6f 6c 65 20  an have a whole 
0830: 73 65 74 20 6f 66 0a 74 79 70 65 5f 49 44 73 2e  set of.type_IDs.
0840: 26 6e 62 73 70 3b 3c 2f 6c 69 3e 0a 3c 6c 69 3e  &nbsp;</li>.<li>
0850: 3c 62 72 3e 0a 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e  <br>.</li>.</ul>
0860: 0a 0a 3c 70 3e 3c 2f 70 3e 0a 0a 3c 70 3e 3c 62  ..<p></p>..<p><b
0870: 72 3e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 3c 62 72 3e  r>.</p>..<p><br>
0880: 0a 3c 2f 70 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c  .</p>..<p><br>.<
0890: 2f 70 3e 0a 0a 3c 68 31 3e 54 68 65 20 44 65 70  /p>..<h1>The Dep
08a0: 72 65 63 61 74 65 64 20 56 65 72 73 69 6f 6e 3c  recated Version<
08b0: 2f 68 31 3e 0a 0a 3c 70 3e 41 20 3c 62 3e 6d 6d  /h1>..<p>A <b>mm
08c0: 6d 76 5f 73 69 6c 6b 65 78 65 63 20 61 70 70 6c  mv_silkexec appl
08d0: 69 63 61 74 69 6f 6e 20 28 68 65 72 65 61 66 74  ication (hereaft
08e0: 65 72 3a 20 73 69 6c 6b 65 78 61 70 70 29 20 69  er: silkexapp) i
08f0: 73 20 77 72 61 70 70 65 72 20 74 6f 20 6f 74 68  s wrapper to oth
0900: 65 72 0a 61 70 70 6c 69 63 61 74 69 6f 6e 73 3c  er.applications<
0910: 2f 62 3e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 6f  /b>, including o
0920: 74 68 65 72 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78  ther mmmv_silkex
0930: 65 63 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e  ec applications.
0940: 20 3c 62 3e 54 68 65 20 70 75 72 70 6f 73 65 20   <b>The purpose 
0950: 6f 66 0a 74 68 65 20 77 72 61 70 70 69 6e 67 20  of.the wrapping 
0960: 69 73 20 74 6f 20 75 73 65 20 65 78 74 72 61 20  is to use extra 
0970: 74 61 67 73 20 61 6e 64 20 75 73 65 72 20 73 70  tags and user sp
0980: 65 63 69 66 69 63 20 63 6f 6e 66 69 67 75 72 61  ecific configura
0990: 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 73 3c  tion parameters<
09a0: 2f 62 3e 0a 66 6f 72 20 75 73 69 6e 67 20 74 68  /b>.for using th
09b0: 65 20 77 72 61 70 70 61 62 6c 65 20 61 70 70 6c  e wrappable appl
09c0: 69 63 61 74 69 6f 6e 2e 3c 2f 70 3e 0a 0a 3c 70  ication.</p>..<p
09d0: 3e 54 68 65 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78  >The mmmv_silkex
09e0: 65 63 20 70 72 6f 6a 65 63 74 20 63 6f 6e 73 69  ec project consi
09f0: 73 74 73 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f  sts of the follo
0a00: 77 69 6e 67 20 74 6f 6f 6c 73 3a 3c 2f 70 3e 0a  wing tools:</p>.
0a10: 0a 3c 70 3e 3c 2f 70 3e 0a 3c 75 6c 3e 0a 3c 6c  .<p></p>.<ul>.<l
0a20: 69 3e 54 68 65 20 6d 6d 6d 76 5f 73 69 6c 6b 65  i>The mmmv_silke
0a30: 78 65 63 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65  xec command line
0a40: 20 74 6f 6f 6c 20 66 6f 72 20 65 78 65 63 75 74   tool for execut
0a50: 69 6e 67 20 73 69 6c 6b 65 78 61 70 70 73 20 62  ing silkexapps b
0a60: 79 0a 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  y.automatically 
0a70: 70 72 65 66 69 78 69 6e 67 20 74 68 65 20 50 41  prefixing the PA
0a80: 54 48 20 77 69 74 68 20 61 20 73 69 6c 6b 65 78  TH with a silkex
0a90: 61 70 70 20 73 70 65 63 69 66 69 63 20 50 41 54  app specific PAT
0aa0: 48 20 76 61 6c 75 65 2e 20 43 61 6c 6c 0a 73 79  H value. Call.sy
0ab0: 6e 74 61 78 3a 20 26 6e 62 73 70 3b 3c 2f 6c 69  ntax: &nbsp;</li
0ac0: 3e 0a 3c 2f 75 6c 3e 0a 0a 3c 62 6c 6f 63 6b 71  >.</ul>..<blockq
0ad0: 75 6f 74 65 3e 6d 6d 6d 76 5f 73 69 6c 6b 65 78  uote>mmmv_silkex
0ae0: 65 63 20 26 6c 74 3b 66 75 6c 6c 20 70 61 74 68  ec &lt;full path
0af0: 20 6f 66 20 6f 72 20 61 20 6e 61 6d 65 20 6f 6e   of or a name on
0b00: 20 74 68 65 20 50 41 54 48 26 67 74 3b 20 26 6c   the PATH&gt; &l
0b10: 74 3b 74 68 65 0a 63 6f 6d 6d 61 6e 64 20 6c 69  t;the.command li
0b20: 6e 65 20 61 72 67 73 20 6f 66 20 74 68 65 20 73  ne args of the s
0b30: 69 6c 6b 65 78 61 70 70 26 67 74 3b 3c 2f 62 6c  ilkexapp&gt;</bl
0b40: 6f 63 6b 71 75 6f 74 65 3e 0a 0a 3c 64 69 76 3e  ockquote>..<div>
0b50: 3c 62 72 3e 0a 3c 2f 64 69 76 3e 0a 3c 75 6c 3e  <br>.</div>.<ul>
0b60: 0a 3c 6c 69 3e 41 6e 20 61 70 70 6c 69 63 61 74  .<li>An applicat
0b70: 69 6f 6e 20 66 6f 72 20 6d 61 69 6e 74 61 69 6e  ion for maintain
0b80: 69 6e 67 20 74 68 65 20 74 61 67 73 2c 20 66 6f  ing the tags, fo
0b90: 72 20 65 78 61 6d 70 6c 65 2c 20 74 65 73 74 65  r example, teste
0ba0: 72 20 73 70 65 63 69 66 69 63 20 74 65 73 74 0a  r specific test.
0bb0: 72 65 73 75 6c 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c  results.</li>.<l
0bc0: 69 3e 41 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e  i>An application
0bd0: 20 66 6f 72 20 6d 61 69 6e 74 61 69 6e 69 6e 67   for maintaining
0be0: 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 20 6c   mmmv_silkexec l
0bf0: 6f 63 61 6c 20 69 6e 73 74 61 6c 6c 61 74 69 6f  ocal installatio
0c00: 6e 20 73 70 65 63 69 66 69 63 0a 67 6c 6f 62 61  n specific.globa
0c10: 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20  l configuration 
0c20: 61 6e 64 20 74 68 65 20 63 6f 6c 6c 65 63 74 69  and the collecti
0c30: 6f 6e 20 6f 66 20 73 69 6c 6b 65 78 61 70 70 73  on of silkexapps
0c40: 2e 3c 62 72 3e 0a 3c 2f 6c 69 3e 0a 3c 2f 75 6c  .<br>.</li>.</ul
0c50: 3e 0a 0a 3c 70 3e 3c 2f 70 3e 0a 0a 3c 70 3e 4e  >..<p></p>..<p>N
0c60: 6f 20 74 65 63 68 6e 69 63 61 6c 20 73 6f 6c 75  o technical solu
0c70: 74 69 6f 6e 20 69 73 20 67 6f 69 6e 67 20 74 6f  tion is going to
0c80: 20 63 6f 6d 70 65 6e 73 61 74 65 20 66 6f 72 20   compensate for 
0c90: 63 72 61 70 70 79 20 77 6f 72 6b 2c 20 62 65 63  crappy work, bec
0ca0: 61 75 73 65 0a 74 65 63 68 6e 69 63 61 6c 20 74  ause.technical t
0cb0: 6f 6f 6c 73 20 63 61 6e 20 62 65 20 73 77 69 74  ools can be swit
0cc0: 63 68 65 64 20 6f 66 66 20 6f 72 20 74 68 65 20  ched off or the 
0cd0: 6f 72 69 67 69 6e 61 6c 20 61 75 74 68 6f 72 73  original authors
0ce0: 20 6f 66 20 73 6f 66 74 77 61 72 65 20 6d 61 79   of software may
0cf0: 0a 6c 65 61 76 65 20 65 64 67 65 20 63 61 73 65  .leave edge case
0d00: 73 20 6f 75 74 20 6f 66 20 63 6f 6e 73 69 64 65  s out of conside
0d10: 72 61 74 69 6f 6e 2e 20 54 68 65 20 6d 61 69 6e  ration. The main
0d20: 20 69 64 65 61 73 20 62 65 68 69 6e 64 20 74 68   ideas behind th
0d30: 65 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 0a  e mmmv_silkexec.
0d40: 61 72 65 3c 62 3e 26 6e 62 73 70 3b 3c 2f 62 3e  are<b>&nbsp;</b>
0d50: 74 6f 20 3c 62 3e 61 6c 6c 6f 77 20 74 68 65 20  to <b>allow the 
0d60: 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 6f 6e 6c  execution of onl
0d70: 79 20 74 68 6f 73 65 20 73 69 6c 6b 65 78 61 70  y those silkexap
0d80: 70 73 20 74 68 61 74 20 68 61 76 65 0a 62 65 65  ps that have.bee
0d90: 6e 20 74 65 73 74 65 64 20 61 6e 64 2f 6f 72 20  n tested and/or 
0da0: 76 65 72 69 66 69 65 64 20 62 79 20 74 72 75 73  verified by trus
0db0: 74 65 64 20 70 61 72 74 69 65 73 3c 2f 62 3e 2c  ted parties</b>,
0dc0: 20 74 68 65 0a 3c 61 20 68 72 65 66 3d 22 68 74   the.<a href="ht
0dd0: 74 70 73 3a 2f 2f 6e 69 78 6f 73 2e 6f 72 67 2f  tps://nixos.org/
0de0: 6e 69 78 2f 22 3e 4e 69 78 4f 53 20 70 61 63 6b  nix/">NixOS pack
0df0: 61 67 65 20 6d 61 6e 61 67 65 72 3c 2f 61 3e 20  age manager</a> 
0e00: 69 64 65 61 20 74 68 61 74 20 65 61 63 68 0a 61  idea that each.a
0e10: 70 70 6c 69 63 61 74 69 6f 6e 20 69 73 20 65 78  pplication is ex
0e20: 65 63 75 74 65 64 20 69 6e 20 61 6e 20 65 6e 76  ecuted in an env
0e30: 69 72 6f 6e 6d 65 6e 74 2c 20 77 68 65 72 65 20  ironment, where 
0e40: 3c 62 3e 74 68 65 20 4c 44 5f 4c 49 42 52 41 52  <b>the LD_LIBRAR
0e50: 59 5f 50 41 54 48 20 61 6e 64 20 74 68 65 0a 50  Y_PATH and the.P
0e60: 41 54 48 20 68 61 76 65 20 73 69 6c 6b 65 78 61  ATH have silkexa
0e70: 70 70 20 73 70 65 63 69 66 69 63 20 70 72 65 66  pp specific pref
0e80: 69 78 65 73 3c 2f 62 3e 2c 20 74 68 65 20 72 65  ixes</b>, the re
0e90: 6c 69 61 6e 63 65 20 6f 6e 20 6f 70 65 72 61 74  liance on operat
0ea0: 69 6e 67 20 73 79 73 74 65 6d 0a 73 65 72 76 69  ing system.servi
0eb0: 63 65 73 20 69 73 26 6e 62 73 70 3b 3c 62 3e 6c  ces is&nbsp;<b>l
0ec0: 69 6d 69 74 65 64 20 74 6f 20 74 68 65 20 55 4e  imited to the UN
0ed0: 49 58 20 73 74 61 6e 64 61 72 64 3c 2f 62 3e 20  IX standard</b> 
0ee0: 74 6f 20 67 69 76 65 20 74 68 65 20 6d 6d 6d 76  to give the mmmv
0ef0: 5f 73 69 6c 6b 65 78 65 63 0a 61 20 63 68 61 6e  _silkexec.a chan
0f00: 63 65 20 74 6f 20 62 65 20 70 6f 72 74 65 64 20  ce to be ported 
0f10: 74 6f 20 61 6c 6c 20 6f 70 65 72 61 74 69 6e 67  to all operating
0f20: 20 73 79 73 74 65 6d 73 20 74 68 61 74 20 68 61   systems that ha
0f30: 76 65 20 74 68 65 20 55 4e 49 58 20 6c 61 79 65  ve the UNIX laye
0f40: 72 20 3c 69 3e 28 4c 69 6e 75 78 2c 0a 42 53 44  r <i>(Linux,.BSD
0f50: 2c 20 47 4e 55 20 48 75 72 64 2c 20 47 65 6e 6f  , GNU Hurd, Geno
0f60: 64 65 20 4f 53 2c 20 4d 69 6e 69 78 33 29 2c 3c  de OS, Minix3),<
0f70: 2f 69 3e 20 74 68 65 26 6e 62 73 70 3b 6d 6d 6d  /i> the&nbsp;mmm
0f80: 76 5f 73 69 6c 6b 65 78 65 63 20 6d 75 73 74 20  v_silkexec must 
0f90: 62 65 20 66 75 6c 6c 79 20 3c 62 3e 75 73 61 62  be fully <b>usab
0fa0: 6c 65 0a 77 69 74 68 6f 75 74 20 68 61 76 69 6e  le.without havin
0fb0: 67 20 61 6e 79 20 72 6f 6f 74 20 61 63 63 65 73  g any root acces
0fc0: 73 3c 2f 62 3e 2e 3c 2f 70 3e 0a 0a 3c 70 3e 3c  s</b>.</p>..<p><
0fd0: 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 3c 62 72  br>.</p>..<p><br
0fe0: 3e 0a 3c 2f 70 3e 0a 0a 3c 68 31 3e 53 69 6c 6b  >.</p>..<h1>Silk
0ff0: 65 78 61 70 70 20 46 6f 72 6d 61 74 3c 2f 68 31  exapp Format</h1
1000: 3e 0a 0a 3c 70 3e 4e 6f 6e 65 20 6f 66 20 74 68  >..<p>None of th
1010: 65 20 73 69 6c 6b 65 78 61 70 70 20 73 74 61 6e  e silkexapp stan
1020: 64 61 72 64 20 66 69 6c 65 20 61 6e 64 20 66 6f  dard file and fo
1030: 6c 64 65 72 20 6e 61 6d 65 73 20 63 6f 6e 74 61  lder names conta
1040: 69 6e 20 61 6e 79 20 73 70 61 63 65 73 2c 0a 74  in any spaces,.t
1050: 61 62 75 6c 61 74 69 6f 6e 20 63 68 61 72 61 63  abulation charac
1060: 74 65 72 73 2c 20 6c 69 6e 65 20 62 72 65 61 6b  ters, line break
1070: 73 2e 20 41 6c 6c 20 73 69 6c 6b 65 78 61 70 70  s. All silkexapp
1080: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 74   configuration t
1090: 65 78 74 20 66 69 6c 65 73 2c 20 74 68 65 0a 6f  ext files, the.o
10a0: 6e 65 73 20 61 74 20 74 68 65 20 73 69 6c 6b 65  nes at the silke
10b0: 78 61 70 70 20 65 74 63 20 66 6f 6c 64 65 72 2c  xapp etc folder,
10c0: 20 61 72 65 20 70 72 65 70 72 6f 63 65 73 73 65   are preprocesse
10d0: 64 20 62 79 20 72 65 6d 6f 76 69 6e 67 20 61 6c  d by removing al
10e0: 6c 20 73 70 61 63 65 73 2c 0a 74 61 62 75 6c 61  l spaces,.tabula
10f0: 74 69 6f 6e 20 63 68 61 72 61 63 74 65 72 73 2c  tion characters,
1100: 20 3c 62 3e 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d   <b>single-line-
1110: 63 6f 6d 6d 65 6e 74 73 20 74 68 61 74 20 73 74  comments that st
1120: 61 72 74 20 77 69 74 68 20 65 69 74 68 65 72 20  art with either 
1130: 22 23 22 20 6f 72 0a 22 2f 2f 22 3c 2f 62 3e 2e  "#" or."//"</b>.
1140: 20 41 66 74 65 72 20 74 68 65 20 73 69 6e 67 6c   After the singl
1150: 65 2d 6c 69 6e 65 2d 63 6f 6d 6d 65 6e 74 73 20  e-line-comments 
1160: 64 65 6c 65 74 69 6f 6e 20 70 72 65 70 72 6f 63  deletion preproc
1170: 65 73 73 69 6e 67 20 73 74 65 70 20 61 6c 6c 20  essing step all 
1180: 6f 66 20 74 68 65 0a 6c 69 6e 65 62 72 65 61 6b  of the.linebreak
1190: 73 20 61 72 65 20 64 65 6c 65 74 65 64 2c 20 65  s are deleted, e
11a0: 78 63 65 70 74 20 66 6f 72 20 74 68 65 20 6c 69  xcept for the li
11b0: 73 74 5f 6f 66 5f 69 6d 6d 65 64 69 61 74 65 5f  st_of_immediate_
11c0: 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 74 78 74  dependencies.txt
11d0: 2e 3c 2f 70 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c  .</p>..<p><br>.<
11e0: 2f 70 3e 0a 3c 70 72 65 3e 26 6c 74 3b 72 65 6c  /p>.<pre>&lt;rel
11f0: 61 74 65 69 76 65 20 49 44 20 61 73 20 66 6f 6c  ateive ID as fol
1200: 64 65 72 20 6e 61 6d 65 26 67 74 3b 0d 0a 3c 2f  der name&gt;..</
1210: 70 72 65 3e 0a 3c 70 72 65 3e 20 20 20 20 7c 3c  pre>.<pre>    |<
1220: 2f 70 72 65 3e 0a 3c 70 72 65 3e 3c 70 72 65 3e  /pre>.<pre><pre>
1230: 20 20 20 20 2b 2d 2d 62 69 6e 20 20 23 20 69 73      +--bin  # is
1240: 20 61 20 73 79 6d 6c 69 6e 6b 20 74 6f 20 2e 2f   a symlink to ./
1250: 62 75 69 6c 64 2f 62 69 6e 20 2e 20 54 68 65 20  build/bin . The 
1260: 73 79 6d 6c 69 6e 6b 20 67 65 74 73 20 63 72 65  symlink gets cre
1270: 61 74 65 64 20 62 79 3c 2f 70 72 65 3e 3c 70 72  ated by</pre><pr
1280: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
1290: 20 20 20 23 20 74 68 65 20 6d 6d 6d 76 5f 73 69     # the mmmv_si
12a0: 6c 6b 65 78 65 63 20 61 66 74 65 72 20 74 68 65  lkexec after the
12b0: 20 62 75 69 6c 64 69 6e 67 20 6f 66 20 74 68 65   building of the
12c0: 20 73 69 6c 6b 65 78 61 70 70 20 68 61 73 20 73   silkexapp has s
12d0: 75 63 63 65 65 64 65 64 2e 20 3c 2f 70 72 65 3e  ucceeded. </pre>
12e0: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 20 20  <pre>    |      
12f0: 20 23 20 54 68 65 20 6d 6d 6d 76 5f 73 69 6c 6b   # The mmmv_silk
1300: 65 78 65 63 20 64 65 6c 65 74 65 73 20 74 68 69  exec deletes thi
1310: 73 20 73 79 6d 6c 69 6e 6b 20 62 65 66 6f 72 65  s symlink before
1320: 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f   the execution o
1330: 66 20 74 68 65 20 62 75 69 6c 64 5f 73 63 72 69  f the build_scri
1340: 70 74 2e 62 61 73 68 20 2e 3c 2f 70 72 65 3e 3c  pt.bash .</pre><
1350: 70 72 65 3e 20 20 20 20 7c 20 20 20 20 20 20 20  pre>    |       
1360: 23 20 49 66 20 74 68 65 20 62 75 69 6c 64 5f 73  # If the build_s
1370: 63 72 69 70 74 2e 62 61 73 68 20 65 78 69 74 65  cript.bash exite
1380: 64 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 2c  d with an error,
1390: 20 74 68 65 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78   the mmmv_silkex
13a0: 65 63 20 64 6f 65 73 20 6e 6f 74 20 63 72 65 61  ec does not crea
13b0: 74 65 20 74 68 69 73 20 73 79 6d 6c 69 6e 6b 2e  te this symlink.
13c0: 3c 2f 70 72 65 3e 3c 2f 70 72 65 3e 3c 2f 70 72  </pre></pre></pr
13d0: 65 3e 0a 3c 70 72 65 3e 20 20 20 20 7c 3c 2f 70  e>.<pre>    |</p
13e0: 72 65 3e 0a 3c 70 72 65 3e 20 20 20 20 2b 2d 2d  re>.<pre>    +--
13f0: 64 6f 63 20 20 23 20 69 73 20 61 6e 20 6f 70 74  doc  # is an opt
1400: 69 6f 6e 61 6c 20 73 79 6d 6c 69 6e 6b 20 74 6f  ional symlink to
1410: 20 2e 2f 62 75 69 6c 64 2f 64 6f 63 20 2e 20 54   ./build/doc . T
1420: 68 65 20 73 79 6d 6c 69 6e 6b 20 67 65 74 73 20  he symlink gets 
1430: 63 72 65 61 74 65 64 20 62 79 3c 2f 70 72 65 3e  created by</pre>
1440: 0a 3c 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c  .<pre><pre>    |
1450: 20 20 20 20 20 20 20 23 20 74 68 65 20 6d 6d 6d         # the mmm
1460: 76 5f 73 69 6c 6b 65 78 65 63 20 61 66 74 65 72  v_silkexec after
1470: 20 74 68 65 20 62 75 69 6c 64 69 6e 67 20 6f 66   the building of
1480: 20 74 68 65 20 73 69 6c 6b 65 78 61 70 70 20 68   the silkexapp h
1490: 61 73 20 73 75 63 63 65 65 64 65 64 2e 20 3c 2f  as succeeded. </
14a0: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
14b0: 20 20 20 20 20 23 20 54 68 65 20 6d 6d 6d 76 5f       # The mmmv_
14c0: 73 69 6c 6b 65 78 65 63 20 64 65 6c 65 74 65 73  silkexec deletes
14d0: 20 74 68 69 73 20 73 79 6d 6c 69 6e 6b 20 62 65   this symlink be
14e0: 66 6f 72 65 20 74 68 65 20 65 78 65 63 75 74 69  fore the executi
14f0: 6f 6e 20 6f 66 20 74 68 65 20 62 75 69 6c 64 5f  on of the build_
1500: 73 63 72 69 70 74 2e 62 61 73 68 20 2e 3c 2f 70  script.bash .</p
1510: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
1520: 20 20 20 20 23 20 49 66 20 74 68 65 20 62 75 69      # If the bui
1530: 6c 64 5f 73 63 72 69 70 74 2e 62 61 73 68 20 65  ld_script.bash e
1540: 78 69 74 65 64 20 77 69 74 68 20 61 6e 20 65 72  xited with an er
1550: 72 6f 72 2c 20 74 68 65 20 6d 6d 6d 76 5f 73 69  ror, the mmmv_si
1560: 6c 6b 65 78 65 63 20 64 6f 65 73 20 6e 6f 74 20  lkexec does not 
1570: 63 72 65 61 74 65 20 74 68 69 73 20 73 79 6d 6c  create this syml
1580: 69 6e 6b 2e 3c 2f 70 72 65 3e 3c 2f 70 72 65 3e  ink.</pre></pre>
1590: 0a 3c 70 72 65 3e 20 20 20 20 7c 3c 2f 70 72 65  .<pre>    |</pre
15a0: 3e 0a 3c 70 72 65 3e 20 20 20 20 2b 2d 2d 20 65  >.<pre>    +-- e
15b0: 74 63 20 23 20 69 73 20 61 6e 20 6f 70 74 69 6f  tc # is an optio
15c0: 6e 61 6c 20 66 6f 6c 64 65 72 3c 2f 70 72 65 3e  nal folder</pre>
15d0: 0a 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 2b  .<pre>    |    +
15e0: 2d 2d 72 75 6e 74 69 6d 65 5f 65 6e 76 69 72 6f  --runtime_enviro
15f0: 6e 6d 65 6e 74 20 23 20 69 73 20 61 6e 20 6f 70  nment # is an op
1600: 74 69 6f 6e 61 6c 20 66 6f 6c 64 65 72 3c 2f 70  tional folder</p
1610: 72 65 3e 0a 3c 70 72 65 3e 20 20 20 20 7c 20 20  re>.<pre>    |  
1620: 20 20 7c 20 20 20 20 7c 3c 2f 70 72 65 3e 0a 3c    |    |</pre>.<
1630: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
1640: 20 20 7c 20 20 20 20 2b 2d 2d 6f 76 65 72 72 69    |    +--overri
1650: 64 69 6e 67 5f 76 61 6c 75 65 73 5f 6f 66 5f 65  ding_values_of_e
1660: 6e 76 69 72 6f 6e 6d 65 6e 74 5f 76 61 72 69 61  nvironment_varia
1670: 62 6c 65 5f 76 61 6c 75 65 73 20 20 20 23 20 74  ble_values   # t
1680: 68 65 20 65 78 69 73 74 65 6e 63 65 20 6f 66 20  he existence of 
1690: 74 68 69 73 20 66 6f 6c 64 65 72 20 69 73 20 6f  this folder is o
16a0: 70 74 69 6f 6e 61 6c 3c 2f 70 72 65 3e 3c 70 72  ptional</pre><pr
16b0: 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20  e>    |    |    
16c0: 7c 20 20 20 20 7c 20 20 23 20 41 6c 6c 20 66 69  |    |  # All fi
16d0: 6c 65 73 20 69 6e 20 74 68 69 73 20 66 6f 6c 64  les in this fold
16e0: 65 72 20 61 72 65 20 6f 70 74 69 6f 6e 61 6c 2e  er are optional.
16f0: 20 46 69 6c 65 20 6e 61 6d 65 73 20 77 69 74 68   File names with
1700: 6f 75 74 20 74 68 65 20 22 2e 74 78 74 22 20 73  out the ".txt" s
1710: 75 66 66 69 78 3c 2f 70 72 65 3e 3c 70 72 65 3e  uffix</pre><pre>
1720: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20      |    |    | 
1730: 20 20 20 7c 20 20 23 20 6d 75 73 74 20 6d 61 74     |  # must mat
1740: 63 68 20 77 69 74 68 20 74 68 65 20 65 6e 76 69  ch with the envi
1750: 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65  ronment variable
1760: 20 6e 61 6d 65 2e 20 46 69 6c 65 20 6e 61 6d 65   name. File name
1770: 73 20 61 72 65 20 63 61 73 65 20 73 65 6e 73 69  s are case sensi
1780: 74 69 76 65 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e  tive.</pre><pre>
1790: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20      |    |    | 
17a0: 20 20 20 7c 20 20 3c 2f 70 72 65 3e 3c 70 72 65     |  </pre><pre
17b0: 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c  >    |    |    |
17c0: 20 20 20 20 2b 2d 2d 4c 44 5f 4c 49 42 52 41 52      +--LD_LIBRAR
17d0: 59 5f 50 41 54 48 2e 74 78 74 3c 2f 70 72 65 3e  Y_PATH.txt</pre>
17e0: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
17f0: 20 20 20 7c 20 20 20 20 2b 2d 2d 50 41 54 48 2e     |    +--PATH.
1800: 74 78 74 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  txt</pre><pre>  
1810: 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20    |    |    |   
1820: 20 2b 2d 2d 43 46 4c 41 47 53 2e 74 78 74 3c 2f   +--CFLAGS.txt</
1830: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
1840: 20 20 7c 20 20 20 20 7c 20 20 20 20 2b 2d 2d 26    |    |    +--&
1850: 6c 74 3b 6f 74 68 65 72 20 65 6e 76 69 72 6f 6e  lt;other environ
1860: 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 73 26 67  ment variables&g
1870: 74 3b 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20  t;</pre><pre>   
1880: 20 7c 20 20 20 20 7c 20 20 20 20 7c 3c 2f 70 72   |    |    |</pr
1890: 65 3e 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e 20 20  e></pre>.<pre>  
18a0: 20 20 7c 20 20 20 20 7c 20 20 20 20 2b 2d 2d 70    |    |    +--p
18b0: 72 65 66 69 78 65 73 5f 6f 66 5f 65 6e 76 69 72  refixes_of_envir
18c0: 6f 6e 6d 65 6e 74 5f 76 61 72 69 61 62 6c 65 5f  onment_variable_
18d0: 76 61 6c 75 65 73 20 20 20 23 20 74 68 65 20 65  values   # the e
18e0: 78 69 73 74 65 6e 63 65 20 6f 66 20 74 68 69 73  xistence of this
18f0: 20 66 6f 6c 64 65 72 20 69 73 20 6f 70 74 69 6f   folder is optio
1900: 6e 61 6c 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e 3c  nal</pre>.<pre><
1910: 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20  pre>    |    |  
1920: 20 20 20 20 20 20 20 7c 20 20 23 20 41 6c 6c 20         |  # All 
1930: 66 69 6c 65 73 20 69 6e 20 74 68 69 73 20 66 6f  files in this fo
1940: 6c 64 65 72 20 61 72 65 20 6f 70 74 69 6f 6e 61  lder are optiona
1950: 6c 2e 20 46 69 6c 65 20 6e 61 6d 65 73 20 77 69  l. File names wi
1960: 74 68 6f 75 74 20 74 68 65 20 22 2e 74 78 74 22  thout the ".txt"
1970: 20 73 75 66 66 69 78 3c 2f 70 72 65 3e 3c 70 72   suffix</pre><pr
1980: 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20  e>    |    |    
1990: 20 20 20 20 20 7c 20 20 23 20 6d 75 73 74 20 6d       |  # must m
19a0: 61 74 63 68 20 77 69 74 68 20 74 68 65 20 65 6e  atch with the en
19b0: 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62  vironment variab
19c0: 6c 65 20 6e 61 6d 65 2e 20 46 69 6c 65 20 6e 61  le name. File na
19d0: 6d 65 73 20 61 72 65 20 63 61 73 65 20 73 65 6e  mes are case sen
19e0: 73 69 74 69 76 65 2e 3c 2f 70 72 65 3e 3c 70 72  sitive.</pre><pr
19f0: 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20  e>    |    |    
1a00: 20 20 20 20 20 7c 20 20 3c 2f 70 72 65 3e 3c 2f       |  </pre></
1a10: 70 72 65 3e 0a 3c 70 72 65 3e 20 20 20 20 7c 20  pre>.<pre>    | 
1a20: 20 20 20 7c 20 20 20 20 20 20 20 20 20 2b 2d 2d     |         +--
1a30: 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54 48 2e  LD_LIBRARY_PATH.
1a40: 74 78 74 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e 20  txt</pre>.<pre> 
1a50: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20     |    |       
1a60: 20 20 2b 2d 2d 50 41 54 48 2e 74 78 74 3c 2f 70    +--PATH.txt</p
1a70: 72 65 3e 0a 3c 70 72 65 3e 20 20 20 20 7c 20 20  re>.<pre>    |  
1a80: 20 20 7c 20 20 20 20 20 20 20 20 20 2b 2d 2d 43    |         +--C
1a90: 46 4c 41 47 53 2e 74 78 74 3c 2f 70 72 65 3e 0a  FLAGS.txt</pre>.
1aa0: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
1ab0: 20 20 20 20 20 20 20 20 2b 2d 2d 26 6c 74 3b 6f          +--&lt;o
1ac0: 74 68 65 72 20 65 6e 76 69 72 6f 6e 6d 65 6e 74  ther environment
1ad0: 20 76 61 72 69 61 62 6c 65 73 26 67 74 3b 3c 2f   variables&gt;</
1ae0: 70 72 65 3e 0a 3c 70 72 65 3e 20 20 20 20 7c 20  pre>.<pre>    | 
1af0: 20 20 20 7c 3c 2f 70 72 65 3e 0a 3c 70 72 65 3e     |</pre>.<pre>
1b00: 20 20 20 20 7c 20 20 20 20 2b 2d 2d 62 75 69 6c      |    +--buil
1b10: 64 74 69 6d 65 5f 65 6e 76 69 72 6f 6e 6d 65 6e  dtime_environmen
1b20: 74 20 23 20 69 73 20 61 6e 20 6f 70 74 69 6f 6e  t # is an option
1b30: 61 6c 20 66 6f 6c 64 65 72 2e 3c 2f 70 72 65 3e  al folder.</pre>
1b40: 0a 3c 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c  .<pre><pre>    |
1b50: 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20      |           
1b60: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 54               # T
1b70: 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74 68  he content of th
1b80: 69 73 20 66 6f 6c 64 65 72 20 68 61 73 20 74 68  is folder has th
1b90: 65 20 73 61 6d 65 20 66 6f 72 6d 61 74 3c 2f 70  e same format</p
1ba0: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
1bb0: 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20   |              
1bc0: 20 20 20 20 20 20 20 20 20 20 23 20 61 73 20 64            # as d
1bd0: 6f 65 73 20 74 68 65 20 66 6f 6c 64 65 72 20 2e  oes the folder .
1be0: 2f 72 75 6e 74 69 6d 65 5f 65 6e 76 69 72 6f 6e  /runtime_environ
1bf0: 6d 65 6e 74 3c 2f 70 72 65 3e 3c 2f 70 72 65 3e  ment</pre></pre>
1c00: 0a 3c 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c  .<pre><pre>    |
1c10: 20 20 20 20 7c 3c 2f 70 72 65 3e 3c 70 72 65 3e      |</pre><pre>
1c20: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 2b 2d  <pre>    |    +-
1c30: 2d 6c 69 73 74 5f 6f 66 5f 69 6d 6d 65 64 69 61  -list_of_immedia
1c40: 74 65 5f 64 65 70 65 6e 64 65 6e 63 69 65 73 2e  te_dependencies.
1c50: 74 78 74 20 23 20 4f 70 74 69 6f 6e 61 6c 2e 20  txt # Optional. 
1c60: 49 66 20 65 78 69 73 74 73 2c 20 74 68 65 6e 20  If exists, then 
1c70: 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c  </pre><pre>    |
1c80: 20 20 20 20 7c 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 23 20 74 68 65 72            # ther
1cb0: 65 20 69 73 20 6f 6e 65 20 3c 61 20 68 72 65 66  e is one <a href
1cc0: 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 6f 66  ="http://www.sof
1cd0: 74 66 31 2e 63 6f 6d 2f 63 67 69 2d 62 69 6e 2f  tf1.com/cgi-bin/
1ce0: 74 72 65 65 31 2f 74 65 63 68 6e 6f 6c 6f 67 79  tree1/technology
1cf0: 2f 66 6c 61 77 73 2f 73 69 6c 6b 74 6f 72 72 65  /flaws/silktorre
1d00: 6e 74 2e 62 61 73 68 2f 77 69 6b 69 3f 6e 61 6d  nt.bash/wiki?nam
1d10: 65 3d 41 6c 67 6f 72 69 74 68 6d 2b 61 6e 64 2b  e=Algorithm+and+
1d20: 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 22 3e  Implementation">
1d30: 53 69 6c 6b 74 6f 72 72 65 6e 74 20 70 61 63 6b  Silktorrent pack
1d40: 65 74 3c 2f 61 3e 20 6e 61 6d 65 20 70 65 72 20  et</a> name per 
1d50: 6c 69 6e 65 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e  line.</pre><pre>
1d60: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20      |    |      
1d70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23                 #
1d90: 20 41 6c 6c 20 6f 66 20 74 68 65 20 53 69 6c 6b   All of the Silk
1da0: 74 6f 72 72 65 6e 74 20 70 61 63 6b 65 74 73 20  torrent packets 
1db0: 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20  are required to 
1dc0: 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c  </pre><pre>    |
1dd0: 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20      |           
1de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df0: 20 20 20 20 20 20 20 20 20 20 23 20 63 6f 6e 66            # conf
1e00: 6f 72 6d 20 74 6f 20 74 68 65 20 53 69 6c 6b 65  orm to the Silke
1e10: 78 61 70 70 20 66 6f 72 6d 61 74 2e 3c 2f 70 72  xapp format.</pr
1e20: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
1e30: 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  |               
1e40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e50: 20 20 20 20 20 20 23 20 54 68 65 20 6c 69 73 74        # The list
1e60: 20 69 6e 63 6c 75 64 65 73 20 62 75 69 6c 64 20   includes build 
1e70: 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 3c 2f 70  dependencies.</p
1e80: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
1e90: 20 7c 3c 2f 70 72 65 3e 3c 2f 70 72 65 3e 3c 70   |</pre></pre><p
1ea0: 72 65 3e 20 20 20 20 7c 20 20 20 20 2b 2d 2d 6c  re>    |    +--l
1eb0: 69 73 74 5f 6f 66 5f 61 67 67 72 65 67 61 74 65  ist_of_aggregate
1ec0: 5f 53 69 6c 6b 74 6f 72 72 65 6e 74 5f 70 61 63  _Silktorrent_pac
1ed0: 6b 65 74 73 2e 74 78 74 20 23 20 4f 70 74 69 6f  kets.txt # Optio
1ee0: 6e 61 6c 2e 20 49 66 20 65 78 69 73 74 73 2c 20  nal. If exists, 
1ef0: 74 68 65 6e 20 3c 2f 70 72 65 3e 3c 70 72 65 3e  then </pre><pre>
1f00: 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20      |           
1f10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f30: 20 20 20 20 20 20 23 20 74 68 65 72 65 20 69 73        # there is
1f40: 20 6f 6e 65 20 3c 61 20 68 72 65 66 3d 22 2e 2f   one <a href="./
1f50: 77 69 6b 69 3f 6e 61 6d 65 3d 41 6c 67 6f 72 69  wiki?name=Algori
1f60: 74 68 6d 2b 61 6e 64 2b 49 6d 70 6c 65 6d 65 6e  thm+and+Implemen
1f70: 74 61 74 69 6f 6e 22 3e 53 69 6c 6b 74 6f 72 72  tation">Silktorr
1f80: 65 6e 74 20 70 61 63 6b 65 74 3c 2f 61 3e 20 6e  ent packet</a> n
1f90: 61 6d 65 20 70 65 72 20 6c 69 6e 65 2e 3c 2f 70  ame per line.</p
1fa0: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
1fb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20                # 
1fe0: 46 72 6f 6d 20 74 68 65 20 70 6f 69 6e 74 20 6f  From the point o
1ff0: 66 20 76 69 65 77 20 6f 66 20 74 68 69 73 20 6d  f view of this m
2000: 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 3c 2f 70 72  mmv_silkexec</pr
2010: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
2020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2040: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 73               # s
2050: 70 65 63 69 66 69 63 61 74 69 6f 6e 20 74 68 65  pecification the
2060: 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74 68 6f 73   content of thos
2070: 65 20 53 69 6c 6b 74 6f 72 72 65 6e 74 20 70 61  e Silktorrent pa
2080: 63 6b 65 74 73 3c 2f 70 72 65 3e 3c 70 72 65 3e  ckets</pre><pre>
2090: 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20      |           
20a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
20b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
20c0: 20 20 20 20 20 20 23 20 69 73 20 6e 6f 74 20 64        # is not d
20d0: 65 74 65 72 6d 69 6e 65 64 2e 3c 2f 70 72 65 3e  etermined.</pre>
20e0: 3c 70 72 65 3e 20 20 20 20 7c 3c 2f 70 72 65 3e  <pre>    |</pre>
20f0: 3c 70 72 65 3e 20 20 20 20 2b 2d 2d 73 72 63 20  <pre>    +--src 
2100: 23 20 41 66 74 65 72 20 75 6e 70 61 63 6b 69 6e  # After unpackin
2110: 67 20 69 74 20 69 73 20 72 65 63 75 72 73 69 76  g it is recursiv
2120: 65 6c 79 20 73 65 74 20 74 6f 20 66 69 6c 65 20  ely set to file 
2130: 70 65 72 6d 69 73 73 69 6f 6e 73 20 30 34 41 42  permissions 04AB
2140: 2c 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20  , </pre><pre>   
2150: 20 7c 20 20 20 20 7c 20 23 20 77 68 65 72 65 20   |    | # where 
2160: 41 2c 42 20 69 6e 53 65 74 7b 34 2c 30 7d 20 61  A,B inSet{4,0} a
2170: 6e 64 20 65 61 63 68 20 6f 66 20 74 68 65 6d 2c  nd each of them,
2180: 20 74 68 65 20 41 20 61 6e 64 20 74 68 65 20 42   the A and the B
2190: 2c 20 69 73 20 3c 2f 70 72 65 3e 3c 70 72 65 3e  , is </pre><pre>
21a0: 20 20 20 20 7c 20 20 20 20 7c 20 23 20 64 65 74      |    | # det
21b0: 65 72 6d 69 6e 65 64 20 62 79 20 6d 6d 6d 76 5f  ermined by mmmv_
21c0: 73 69 6c 6b 65 78 65 63 20 73 65 74 74 69 6e 67  silkexec setting
21d0: 73 2c 20 77 68 69 63 68 20 61 72 65 20 6d 61 6e  s, which are man
21e0: 69 70 75 6c 61 74 65 64 20 62 79 20 3c 2f 70 72  ipulated by </pr
21f0: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
2200: 7c 20 23 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65  | # mmmv_silkexe
2210: 63 20 73 79 73 2d 63 6f 6d 6d 61 6e 64 73 2e 20  c sys-commands. 
2220: 45 76 65 72 79 74 68 69 6e 67 20 69 6e 20 74 68  Everything in th
2230: 65 20 74 68 69 73 20 66 6f 6c 64 65 72 2c 20 74  e this folder, t
2240: 68 65 20 73 72 63 2c 3c 2f 70 72 65 3e 3c 70 72  he src,</pre><pr
2250: 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 23 20 69  e>    |    | # i
2260: 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  s automatically 
2270: 63 6f 70 69 65 64 20 74 6f 20 74 68 65 20 62 75  copied to the bu
2280: 69 6c 64 20 66 6f 6c 64 65 72 20 62 65 66 6f 72  ild folder befor
2290: 65 20 62 75 69 6c 64 69 6e 67 2e 20 3c 2f 70 72  e building. </pr
22a0: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
22b0: 7c 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20  |</pre><pre>    
22c0: 7c 20 20 20 20 2b 2d 2d 73 69 6c 6b 65 78 61 70  |    +--silkexap
22d0: 70 5f 63 6f 6e 74 72 6f 6c 3c 2f 70 72 65 3e 3c  p_control</pre><
22e0: 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20  pre>    |    |  
22f0: 20 20 7c 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20    |</pre><pre>  
2300: 20 20 7c 20 20 20 20 7c 20 20 20 20 2b 2d 2d 62    |    |    +--b
2310: 75 69 6c 64 5f 73 63 72 69 70 74 2e 62 61 73 68  uild_script.bash
2320: 20 23 20 69 73 20 65 78 65 63 75 74 65 64 20 61   # is executed a
2330: 73 20 61 20 63 6f 70 79 20 69 6e 20 74 68 65 20  s a copy in the 
2340: 73 75 62 66 6f 6c 64 65 72 20 6f 66 20 74 68 65  subfolder of the
2350: 20 62 75 69 6c 64 20 66 6f 6c 64 65 72 2e 20 3c   build folder. <
2360: 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20  /pre><pre>    | 
2370: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20     |    |       
2380: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 42               # B
2390: 75 69 6c 64 69 6e 67 20 61 6c 77 61 79 73 20 69  uilding always i
23a0: 6e 63 6c 75 64 65 73 20 62 6f 6f 74 73 74 72 61  ncludes bootstra
23b0: 70 70 69 6e 67 2e 20 49 66 20 74 68 65 20 62 75  pping. If the bu
23c0: 69 6c 64 20 66 61 69 6c 73 2c 3c 2f 70 72 65 3e  ild fails,</pre>
23d0: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
23e0: 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20     |            
23f0: 20 20 20 20 20 20 20 20 23 20 74 68 65 6e 20 74          # then t
2400: 68 65 20 62 75 69 6c 64 5f 73 63 72 69 70 74 2e  he build_script.
2410: 62 61 73 68 20 6d 75 73 74 20 65 78 69 74 20 77  bash must exit w
2420: 69 74 68 20 61 20 6e 6f 6e 2d 30 20 65 72 72 6f  ith a non-0 erro
2430: 72 20 63 6f 64 65 2e 3c 2f 70 72 65 3e 3c 70 72  r code.</pre><pr
2440: 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20  e>    |    |    
2450: 7c 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 70 72 65  |</pre><pre><pre
2460: 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 2b  >    |    |    +
2470: 2d 2d 72 75 6e 5f 61 6c 6c 5f 74 65 73 74 73 5f  --run_all_tests_
2480: 61 6e 64 5f 65 78 69 74 5f 77 69 74 68 5f 30 5f  and_exit_with_0_
2490: 69 66 5f 61 6c 6c 5f 74 65 73 74 73 5f 70 61 73  if_all_tests_pas
24a0: 73 5f 74 31 2e 62 61 73 68 20 23 20 73 68 6f 75  s_t1.bash # shou
24b0: 6c 64 20 64 65 73 63 72 69 62 65 20 66 61 69 6c  ld describe fail
24c0: 75 72 65 73 20 61 74 20 73 74 64 6f 75 74 20 6f  ures at stdout o
24d0: 72 20 73 74 64 65 72 72 3c 2f 70 72 65 3e 3c 70  r stderr</pre><p
24e0: 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20  re>    |    |   
24f0: 20 7c 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20   |</pre><pre>   
2500: 20 7c 20 20 20 20 7c 20 20 20 20 2b 2d 2d 73 69   |    |    +--si
2510: 5f 73 74 6f 72 61 67 65 5f 73 70 61 63 65 5f 73  _storage_space_s
2520: 69 7a 65 5f 69 6e 5f 62 79 74 65 73 5f 77 69 74  ize_in_bytes_wit
2530: 68 6f 75 74 5f 69 6e 63 6c 75 64 69 6e 67 5f 64  hout_including_d
2540: 65 70 65 6e 64 65 6e 63 69 65 73 2e 62 61 73 68  ependencies.bash
2550: 20 23 20 50 72 69 6e 74 73 20 61 20 6e 75 6d 62   # Prints a numb
2560: 65 72 20 74 6f 20 63 6f 6e 73 6f 6c 65 2e 3c 2f  er to console.</
2570: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
2580: 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20    |    |        
2590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
25a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 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 23 20 54               # T
25d0: 68 65 20 70 72 69 6e 74 6f 75 74 20 6d 61 79 20  he printout may 
25e0: 69 6e 63 6c 75 64 65 20 3c 2f 70 72 65 3e 3c 70  include </pre><p
25f0: 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20  re>    |    |   
2600: 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20   |              
2610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 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 20 20                  
2640: 20 20 20 20 20 20 20 23 20 61 20 6c 69 6e 65 20         # a line 
2650: 62 72 65 61 6b 2e 3c 2f 70 72 65 3e 3c 70 72 65  break.</pre><pre
2660: 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c  >    |    |    |
2670: 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 70 72 65 3e  </pre><pre><pre>
2680: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 2b 2d      |    |    +-
2690: 2d 73 69 5f 72 65 63 75 72 73 69 76 65 5f 73 74  -si_recursive_st
26a0: 6f 72 61 67 65 5f 73 70 61 63 65 5f 73 69 7a 65  orage_space_size
26b0: 5f 6f 66 5f 61 6c 6c 5f 69 6d 6d 65 64 69 61 74  _of_all_immediat
26c0: 65 5f 64 65 70 65 6e 64 65 6e 63 69 65 73 5f 69  e_dependencies_i
26d0: 6e 5f 62 79 74 65 73 2e 62 61 73 68 20 3c 2f 70  n_bytes.bash </p
26e0: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
26f0: 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20 20   |    |         
2700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2730: 20 20 20 20 20 20 20 20 20 20 20 20 23 20 50 72              # Pr
2740: 69 6e 74 73 20 61 20 6e 75 6d 62 65 72 20 74 6f  ints a number to
2750: 20 63 6f 6e 73 6f 6c 65 2e 3c 2f 70 72 65 3e 3c   console.</pre><
2760: 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20  pre>    |    |  
2770: 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20    |             
2780: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
27a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
27b0: 20 20 20 20 20 20 20 20 23 20 54 68 65 20 70 72          # The pr
27c0: 69 6e 74 6f 75 74 20 6d 61 79 20 69 6e 63 6c 75  intout may inclu
27d0: 64 65 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  de </pre><pre>  
27e0: 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20    |    |    |   
27f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2830: 20 20 23 20 61 20 6c 69 6e 65 20 62 72 65 61 6b    # a line break
2840: 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20  .</pre><pre>    
2850: 7c 20 20 20 20 7c 20 20 20 20 7c 3c 2f 70 72 65  |    |    |</pre
2860: 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c  ><pre>    |    |
2870: 20 20 20 20 2b 2d 2d 73 5f 73 69 6c 6b 65 78 61      +--s_silkexa
2880: 70 70 5f 63 6f 72 65 5f 76 65 72 73 69 6f 6e 2e  pp_core_version.
2890: 62 61 73 68 20 23 20 50 72 69 6e 74 73 20 61 20  bash # Prints a 
28a0: 73 74 72 69 6e 67 20 74 6f 20 63 6f 6e 73 6f 6c  string to consol
28b0: 65 2e 20 54 6f 20 66 61 63 69 6c 69 74 61 74 65  e. To facilitate
28c0: 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20   </pre><pre>    
28d0: 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20  |    |    |     
28e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
28f0: 20 20 20 20 20 20 20 20 20 20 20 23 20 74 68 65             # the
2900: 20 75 73 65 20 6f 66 20 73 69 67 6e 61 74 75 72   use of signatur
2910: 65 73 2c 20 74 68 65 20 73 74 72 69 6e 67 20 69  es, the string i
2920: 73 20 61 6c 6c 6f 77 65 64 20 74 6f 20 20 3c 2f  s allowed to  </
2930: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
2940: 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20    |    |        
2950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2960: 20 20 20 20 20 20 20 20 23 20 69 6e 63 6c 75 64          # includ
2970: 65 20 6c 69 6e 65 20 62 72 65 61 6b 73 2c 20 73  e line breaks, s
2980: 70 61 63 65 73 2c 20 74 61 62 75 6c 61 74 69 6f  paces, tabulatio
2990: 6e 20 63 68 61 72 61 63 74 65 72 73 2e 3c 2f 70  n characters.</p
29a0: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
29b0: 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20 20   |    |         
29c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
29d0: 20 20 20 20 20 20 20 23 20 3c 2f 70 72 65 3e 3c         # </pre><
29e0: 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20  pre>    |    |  
29f0: 20 20 7c 20 20 20 20 20 20 20 20 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 23 20 54 68 65 20 69 64 65 61 20 69 73     # The idea is
2a20: 20 74 68 61 74 20 64 69 66 66 65 72 65 6e 74 20   that different 
2a30: 73 69 6c 6b 65 78 61 70 70 73 20 63 61 6e 20 75  silkexapps can u
2a40: 73 65 20 74 68 65 20 73 61 6d 65 20 20 3c 2f 70  se the same  </p
2a50: 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20  re><pre>    |   
2a60: 20 7c 20 20 20 20 7c 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 23 20 76 65 72 73 69 6f 6e         # version
2a90: 20 6f 66 20 61 6e 20 61 70 70 6c 69 63 61 74 69   of an applicati
2aa0: 6f 6e 20 73 6f 75 72 63 65 2c 20 62 75 74 20 74  on source, but t
2ab0: 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 73  he application s
2ac0: 6f 75 72 63 65 20 3c 2f 70 72 65 3e 3c 70 72 65  ource </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: 23 20 63 61 6e 20 62 65 20 62 75 69 6c 74 20 62  # can be built b
2b10: 79 20 75 73 69 6e 67 20 64 69 66 66 65 72 65 6e  y using differen
2b20: 74 20 62 75 69 6c 64 20 70 61 72 61 6d 65 74 65  t build paramete
2b30: 72 73 2e 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20  rs. </pre><pre> 
2b40: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 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 20 20 20 20 20 20 20 20 23 20                # 
2b70: 44 69 66 66 65 72 65 6e 74 20 73 69 6c 6b 65 78  Different silkex
2b80: 61 70 70 73 20 74 68 61 74 20 62 75 69 6c 64 20  apps that build 
2b90: 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20  the application 
2ba0: 62 79 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  by </pre><pre>  
2bb0: 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 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 20 20 20 20 20 20 23 20 75               # u
2be0: 73 69 6e 67 20 74 68 65 20 73 61 6d 65 20 62 75  sing the same bu
2bf0: 69 6c 64 20 70 61 72 61 6d 65 74 65 72 73 2c 20  ild parameters, 
2c00: 63 61 6e 20 68 61 76 65 20 0d 0a 3c 2f 70 72 65  can have ..</pre
2c10: 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c  ><pre>    |    |
2c20: 20 20 20 20 7c 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 23 20 64 69 66 66 65 72 65 6e 74       # different
2c50: 20 73 69 6c 6b 65 78 61 70 70 20 73 63 72 69 70   silkexapp scrip
2c60: 74 73 20 61 6e 64 20 64 69 66 66 65 72 65 6e 74  ts and different
2c70: 20 64 65 76 65 6c 6f 70 65 72 73 2e 3c 2f 70 72   developers.</pr
2c80: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
2c90: 7c 20 20 20 20 7c 3c 2f 70 72 65 3e 3c 70 72 65  |    |</pre><pre
2ca0: 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 2b  >    |    |    +
2cb0: 2d 2d 73 62 5f 69 73 5f 72 65 61 64 79 5f 34 5f  --sb_is_ready_4_
2cc0: 73 69 6c 6b 65 78 61 70 70 5f 70 61 63 6b 61 67  silkexapp_packag
2cd0: 65 5f 66 6f 72 6d 61 74 5f 74 65 73 74 73 2e 62  e_format_tests.b
2ce0: 61 73 68 20 23 20 50 72 69 6e 74 73 20 61 20 73  ash # Prints a s
2cf0: 74 72 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 73  tring from the s
2d00: 65 74 20 7b 22 74 22 2c 22 66 22 7d 2c 20 3c 2f  et {"t","f"}, </
2d10: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
2d20: 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20    |    |        
2d30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2d40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2d50: 20 20 20 20 20 20 20 20 20 20 20 20 23 20 77 68              # wh
2d60: 65 72 65 20 22 74 22 20 73 74 61 6e 64 73 20 66  ere "t" stands f
2d70: 6f 72 20 22 74 72 75 65 22 20 3c 2f 70 72 65 3e  or "true" </pre>
2d80: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
2d90: 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20     |            
2da0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2db0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2dc0: 20 20 20 20 20 20 20 20 23 20 61 6e 64 20 22 66          # and "f
2dd0: 22 20 73 74 61 6e 64 73 20 66 6f 72 20 22 66 61  " stands for "fa
2de0: 6c 73 65 22 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e  lse".</pre><pre>
2df0: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 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 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2e30: 20 20 20 23 20 54 68 65 20 73 74 72 69 6e 67 20     # The string 
2e40: 64 6f 65 73 20 6e 6f 74 20 65 6e 64 20 77 69 74  does not end wit
2e50: 68 20 61 20 6c 69 6e 65 20 62 72 65 61 6b 2e 3c  h a line break.<
2e60: 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20  /pre><pre>    | 
2e70: 20 20 20 7c 20 20 20 20 7c 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 20 20 20 20 20                  
2ea0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 0d               # .
2eb0: 0a 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20  .</pre><pre>    
2ec0: 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20  |    |    |     
2ed0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 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 23                 #
2f00: 20 54 68 65 20 22 66 22 20 69 6e 64 69 63 61 74   The "f" indicat
2f10: 65 73 20 74 68 61 74 20 6e 6f 74 20 61 6c 6c 20  es that not all 
2f20: 0d 0a 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20  ..</pre><pre>   
2f30: 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20   |    |    |    
2f40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f50: 20 20 20 20 20 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: 23 20 73 69 6c 6b 65 78 61 70 70 20 66 6f 72 6d  # silkexapp form
2f80: 61 74 20 73 70 65 63 69 66 69 63 20 73 63 72 69  at specific scri
2f90: 70 74 73 20 61 6e 64 20 3c 2f 70 72 65 3e 3c 70  pts and </pre><p
2fa0: 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20  re>    |    |   
2fb0: 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20   |              
2fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2fd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2fe0: 20 20 20 20 20 20 23 20 66 6f 6c 64 65 72 73 20        # folders 
2ff0: 61 72 65 20 70 72 65 73 65 6e 74 20 6f 72 20 72  are present or r
3000: 65 61 64 79 20 74 6f 20 62 65 20 75 73 65 64 2e  eady to be used.
3010: 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c  </pre><pre>    |
3020: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20      |    |      
3030: 20 20 20 20 20 20 20 20 20 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 23 20                # 
3060: 54 68 65 20 22 74 22 20 69 6e 64 69 63 61 74 65  The "t" indicate
3070: 73 20 74 68 61 74 20 74 68 65 20 63 75 72 72 65  s that the curre
3080: 6e 74 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  nt </pre><pre>  
3090: 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 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 20 20 20                  
30c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
30d0: 20 23 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e   # specification
30e0: 20 69 73 20 65 78 70 65 63 74 65 64 20 74 6f 20   is expected to 
30f0: 62 65 20 6d 65 74 3c 2f 70 72 65 3e 3c 70 72 65  be met</pre><pre
3100: 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c  >    |    |    |
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 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3140: 20 20 20 20 23 20 74 6f 20 74 68 65 20 65 78 74      # to the ext
3150: 65 6e 74 20 74 68 61 74 20 74 68 65 20 73 69 6c  ent that the sil
3160: 6b 65 78 61 70 70 20 73 63 72 69 70 74 73 3c 2f  kexapp scripts</
3170: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
3180: 20 20 7c 20 20 20 20 7c 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 20 20 20 20 20 20 20 20 20 20 20 20                  
31b0: 20 20 20 20 20 20 20 20 20 20 20 20 23 20 63 61              # ca
31c0: 6e 20 62 65 20 74 65 73 74 65 64 2e 20 54 68 65  n be tested. The
31d0: 20 6f 75 74 70 75 74 20 76 61 6c 75 65 20 63 61   output value ca
31e0: 6e 20 62 65 0d 0a 3c 2f 70 72 65 3e 3c 70 72 65  n be..</pre><pre
31f0: 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c  >    |    |    |
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 20 20 20 20 20 20                  
3220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3230: 20 20 20 20 23 20 63 61 6c 63 75 6c 61 74 65 64      # calculated
3240: 20 64 75 72 69 6e 67 20 72 75 6e 74 69 6d 65 2c   during runtime,
3250: 20 64 79 6e 61 6d 69 63 61 6c 6c 79 2e 20 3c 2f   dynamically. </
3260: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
3270: 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20    |    |        
3280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
32a0: 20 20 20 20 20 20 20 20 20 20 20 20 23 20 46 6f              # Fo
32b0: 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 73  r example, the s
32c0: 63 72 69 70 74 20 6d 61 79 20 73 74 75 64 79 20  cript may study 
32d0: 74 68 65 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20  the </pre><pre> 
32e0: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20     |    |    |  
32f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3310: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3320: 20 20 23 20 76 61 6c 75 65 20 6f 66 20 65 6e 76    # value of env
3330: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c  ironment variabl
3340: 65 73 20 61 6e 64 20 74 68 65 20 70 72 65 73 65  es and the prese
3350: 6e 63 65 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  nce</pre><pre>  
3360: 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20    |    |    |   
3370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
33a0: 20 23 20 61 6e 64 20 63 6f 6e 74 65 6e 74 20 6f   # and content o
33b0: 66 20 66 69 6c 65 73 2e 3c 2f 70 72 65 3e 3c 70  f files.</pre><p
33c0: 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20  re>    |    |   
33d0: 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20   |              
33e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
33f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3400: 20 20 20 20 20 20 23 20 3c 2f 70 72 65 3e 3c 70        # </pre><p
3410: 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20 20  re>    |    |   
3420: 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20   |              
3430: 20 20 20 20 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 23 20 41 6e 20 6f 70 74 69 6f        # An optio
3460: 6e 61 6c 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65  nal command line
3470: 20 70 61 72 61 6d 65 74 65 72 2c 20 3c 2f 70 72   parameter, </pr
3480: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
3490: 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20  |    |          
34a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
34b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
34c0: 20 20 20 20 20 20 20 20 20 20 23 20 22 65 78 70            # "exp
34d0: 6c 61 6e 61 74 69 6f 6e 22 2c 20 77 69 74 68 6f  lanation", witho
34e0: 75 74 20 74 68 65 20 71 75 6f 74 65 73 2c 20 3c  ut the quotes, <
34f0: 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20  /pre><pre>    | 
3500: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20     |    |       
3510: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
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 23 20 69               # i
3540: 73 20 65 78 70 65 63 74 65 64 20 74 6f 20 63 68  s expected to ch
3550: 61 6e 67 65 20 74 68 65 20 6f 75 74 70 75 74 20  ange the output 
3560: 6d 6f 64 65 20 3c 2f 70 72 65 3e 3c 70 72 65 3e  mode </pre><pre>
3570: 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20      |    |    | 
3580: 20 20 20 20 20 20 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 20 20 20 20 20 20                  
35b0: 20 20 20 23 20 66 72 6f 6d 20 74 68 65 20 22 74     # from the "t
35c0: 22 20 61 6e 64 20 22 66 22 20 74 6f 20 61 20 66  " and "f" to a f
35d0: 72 65 65 73 74 79 6c 65 20 3c 2f 70 72 65 3e 3c  reestyle </pre><
35e0: 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20 20  pre>    |    |  
35f0: 20 20 7c 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 20 20 20 20 20 20 20 20 20 20 20 20                  
3620: 20 20 20 20 20 20 20 23 20 74 65 78 74 20 74 68         # text th
3630: 61 74 20 65 78 70 6c 61 69 6e 73 20 74 68 65 20  at explains the 
3640: 63 69 72 63 75 6d 73 74 61 6e 63 65 73 20 3c 2f  circumstances </
3650: 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20  pre><pre>    |  
3660: 20 20 7c 20 20 20 20 7c 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 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3690: 20 20 20 20 20 20 20 20 20 20 20 20 23 20 74 68              # th
36a0: 61 74 20 65 66 66 65 63 74 20 74 68 65 20 63 68  at effect the ch
36b0: 6f 69 63 65 20 62 65 74 77 65 65 6e 20 74 68 65  oice between the
36c0: 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20   </pre><pre>    
36d0: 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20  |    |    |     
36e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
36f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23                 #
3710: 20 22 74 22 20 61 6e 64 20 22 66 22 2e 20 54 68   "t" and "f". Th
3720: 65 20 66 72 65 65 73 74 79 6c 65 20 74 65 78 74  e freestyle text
3730: 20 63 61 6e 3c 2f 70 72 65 3e 3c 70 72 65 3e 20   can</pre><pre> 
3740: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20     |    |    |  
3750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3780: 20 20 23 20 63 6f 6e 74 61 69 6e 20 6c 69 6e 65    # contain line
3790: 20 62 72 61 6b 65 73 2c 20 74 61 62 75 6c 61 74   brakes, tabulat
37a0: 69 6f 6e 20 63 68 61 72 61 63 74 65 72 73 20 61  ion characters a
37b0: 6e 64 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  nd </pre><pre>  
37c0: 20 20 7c 20 20 20 20 7c 20 20 20 20 7c 20 20 20    |    |    |   
37d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
37e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
37f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3800: 20 23 20 73 70 61 63 65 73 2e 3c 2f 70 72 65 3e   # spaces.</pre>
3810: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
3820: 20 20 20 7c 0d 0a 3c 2f 70 72 65 3e 3c 2f 70 72     |..</pre></pr
3830: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
3840: 7c 20 20 20 20 2b 2d 2d 64 65 6c 65 74 65 5f 63  |    +--delete_c
3850: 61 63 68 65 5f 63 6f 6e 74 65 6e 74 5f 74 31 2e  ache_content_t1.
3860: 62 61 73 68 20 23 20 73 65 74 73 20 73 69 6c 6b  bash # sets silk
3870: 65 78 61 70 70 20 73 74 61 74 65 20 74 6f 20 61  exapp state to a
3880: 73 20 69 66 20 69 74 20 77 65 72 65 20 69 6e 73  s if it were ins
3890: 74 61 6c 6c 65 64 20 74 68 65 20 31 2e 20 74 69  talled the 1. ti
38a0: 6d 65 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20  me</pre><pre>   
38b0: 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20 20   |    |         
38c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
38d0: 20 20 20 20 20 20 20 20 20 20 20 23 20 49 66 20             # If 
38e0: 62 75 69 6c 64 20 73 75 63 63 65 65 64 73 20 61  build succeeds a
38f0: 6e 64 20 74 68 69 73 20 66 69 6c 65 20 65 78 69  nd this file exi
3900: 73 74 73 2c 20 74 68 65 6e 20 3c 2f 70 72 65 3e  sts, then </pre>
3910: 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20 7c 20  <pre>    |    | 
3920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3940: 20 20 20 23 20 69 74 20 69 73 20 61 75 74 6f 6d     # it is autom
3950: 61 74 69 63 61 6c 6c 79 20 63 61 6c 6c 65 64 20  atically called 
3960: 62 79 20 74 68 65 20 6d 6d 6d 76 5f 73 69 6c 6b  by the mmmv_silk
3970: 65 78 65 63 3c 2f 70 72 65 3e 3c 70 72 65 3e 20  exec</pre><pre> 
3980: 20 20 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20     |    |       
3990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
39a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 61               # a
39b0: 66 74 65 72 20 74 68 65 20 62 75 69 6c 64 2e 20  fter the build. 
39c0: 49 74 20 6d 75 73 74 20 62 65 20 61 62 6c 65 20  It must be able 
39d0: 74 6f 20 68 61 6e 64 6c 65 20 61 20 63 61 73 65  to handle a case
39e0: 2c 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20  , </pre><pre>   
39f0: 20 7c 20 20 20 20 7c 20 20 20 20 20 20 20 20 20   |    |         
3a00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3a10: 20 20 20 20 20 20 20 20 20 20 20 23 20 77 68 65             # whe
3a20: 72 65 20 74 68 65 72 65 20 69 73 20 6e 6f 20 63  re there is no c
3a30: 6f 70 79 20 6f 66 20 74 68 65 20 63 61 63 68 65  opy of the cache
3a40: 2e 3c 2f 70 72 65 3e 3c 2f 70 72 65 3e 3c 70 72  .</pre></pre><pr
3a50: 65 3e 20 20 20 20 7c 20 20 20 20 7c 3c 2f 70 72  e>    |    |</pr
3a60: 65 3e 3c 70 72 65 3e 20 20 20 20 7c 20 20 20 20  e><pre>    |    
3a70: 2b 2d 2d 75 70 73 74 72 65 61 6d 5f 64 65 6c 69  +--upstream_deli
3a80: 76 65 72 61 62 6c 65 73 20 23 20 69 73 20 61 20  verables # is a 
3a90: 66 6f 6c 64 65 72 20 66 6f 72 20 75 6e 70 61 74  folder for unpat
3aa0: 63 68 65 64 2c 20 75 6e 6d 6f 64 69 66 69 65 64  ched, unmodified
3ab0: 2c 20 6f 72 69 67 69 6e 61 6c 73 3c 2f 70 72 65  , originals</pre
3ac0: 3e 3c 70 72 65 3e 20 20 20 20 7c 3c 2f 70 72 65  ><pre>    |</pre
3ad0: 3e 3c 70 72 65 3e 20 20 20 20 2b 2d 2d 62 75 69  ><pre>    +--bui
3ae0: 6c 64 20 20 23 20 69 73 20 64 65 6c 65 74 65 64  ld  # is deleted
3af0: 20 62 79 20 74 68 65 20 6d 6d 6d 76 5f 73 69 6c   by the mmmv_sil
3b00: 6b 65 78 65 63 20 65 76 65 72 79 20 74 69 6d 65  kexec every time
3b10: 20 62 65 66 6f 72 65 20 74 68 65 20 73 69 6c 6b   before the silk
3b20: 65 78 61 70 70 20 69 73 20 62 75 69 6c 74 20 2e  exapp is built .
3b30: 3c 2f 70 72 65 3e 3c 2f 70 72 65 3e 0a 3c 70 72  </pre></pre>.<pr
3b40: 65 3e 3c 70 72 65 3e 20 20 20 20 20 20 20 20 20  e><pre>         
3b50: 7c 20 20 20 20 23 20 54 68 65 20 6d 6d 6d 76 5f  |    # The mmmv_
3b60: 73 69 6c 6b 65 78 65 63 20 73 65 74 73 20 69 74  silkexec sets it
3b70: 73 20 66 69 6c 65 20 70 65 72 6d 69 73 73 69 6f  s file permissio
3b80: 6e 73 20 72 65 63 75 72 73 69 76 65 6c 79 20 3c  ns recursively <
3b90: 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 20 20  /pre><pre>      
3ba0: 20 20 20 7c 20 20 20 20 23 20 74 6f 20 30 37 41     |    # to 07A
3bb0: 42 20 62 65 66 6f 72 65 20 65 78 65 63 75 74 69  B before executi
3bc0: 6e 67 20 74 68 65 20 62 75 69 6c 64 5f 73 63 72  ng the build_scr
3bd0: 69 70 74 2e 62 61 73 68 2e 20 3c 2f 70 72 65 3e  ipt.bash. </pre>
3be0: 3c 70 72 65 3e 20 20 20 20 20 20 20 20 20 7c 20  <pre>         | 
3bf0: 20 20 20 23 20 54 68 65 20 41 20 61 6e 64 20 74     # The A and t
3c00: 68 65 20 42 20 61 72 65 20 74 68 65 20 73 61 6d  he B are the sam
3c10: 65 20 61 73 20 77 69 74 68 20 74 68 65 20 73 72  e as with the sr
3c20: 63 20 66 6f 6c 64 65 72 2e 3c 2f 70 72 65 3e 3c  c folder.</pre><
3c30: 70 72 65 3e 20 20 20 20 20 20 20 20 20 7c 20 3c  pre>         | <
3c40: 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 20 20  /pre><pre>      
3c50: 20 20 20 2b 2d 2d 62 69 6e 20 23 20 69 73 20 74     +--bin # is t
3c60: 68 65 20 74 61 72 67 65 74 20 6f 66 20 74 68 65  he target of the
3c70: 20 73 69 6c 6b 65 78 61 70 70 20 62 69 6e 20 66   silkexapp bin f
3c80: 6f 6c 64 65 72 20 73 79 6d 6c 69 6e 6b 2e 20 54  older symlink. T
3c90: 68 69 73 20 66 6f 6c 64 65 72 20 3c 2f 70 72 65  his folder </pre
3ca0: 3e 3c 70 72 65 3e 20 20 20 20 20 20 20 20 20 7c  ><pre>         |
3cb0: 20 20 20 20 20 20 23 20 69 73 20 63 72 65 61 74        # is creat
3cc0: 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79  ed automatically
3cd0: 20 62 65 66 6f 72 65 20 74 68 65 20 62 75 69 6c   before the buil
3ce0: 64 5f 73 63 72 69 70 74 2e 62 61 73 68 20 69 73  d_script.bash is
3cf0: 20 72 75 6e 2e 3c 2f 70 72 65 3e 3c 70 72 65 3e   run.</pre><pre>
3d00: 20 20 20 20 20 20 20 20 20 7c 3c 2f 70 72 65 3e           |</pre>
3d10: 3c 70 72 65 3e 20 20 20 20 20 20 20 20 20 2b 2d  <pre>         +-
3d20: 2d 64 6f 63 20 23 20 61 6e 20 6f 70 74 69 6f 6e  -doc # an option
3d30: 61 6c 20 66 6f 6c 64 65 72 20 74 68 61 74 20 69  al folder that i
3d40: 73 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 63 72  s meant to be cr
3d50: 65 61 74 65 64 20 62 79 20 74 68 65 20 62 75 69  eated by the bui
3d60: 6c 64 5f 73 63 72 69 70 74 2e 62 61 73 68 20 2e  ld_script.bash .
3d70: 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 20  </pre><pre>     
3d80: 20 20 20 20 7c 20 20 20 20 20 20 23 20 49 66 20      |      # If 
3d90: 74 68 69 73 20 66 6f 6c 64 65 72 20 65 78 69 73  this folder exis
3da0: 74 73 20 61 6e 64 20 74 68 65 20 62 75 69 6c 64  ts and the build
3db0: 5f 73 63 72 69 70 74 2e 62 61 73 68 20 68 61 73  _script.bash has
3dc0: 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20   </pre><pre>    
3dd0: 20 20 20 20 20 7c 20 20 20 20 20 20 23 20 65 78       |      # ex
3de0: 69 74 65 64 20 77 69 74 68 6f 75 74 20 61 6e 79  ited without any
3df0: 20 65 72 72 6f 72 73 2c 20 69 64 20 65 73 74 20   errors, id est 
3e00: 77 69 74 68 20 65 72 72 6f 72 20 63 6f 64 65 20  with error code 
3e10: 30 2c 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20  0, </pre><pre>  
3e20: 20 20 20 20 20 20 20 7c 20 20 20 20 20 20 23 20         |      # 
3e30: 74 68 65 6e 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78  then mmmv_silkex
3e40: 65 63 20 63 72 65 61 74 65 73 20 61 20 73 79 6d  ec creates a sym
3e50: 6c 69 6e 6b 20 74 6f 20 74 68 69 73 20 66 6f 6c  link to this fol
3e60: 64 65 72 20 3c 2f 70 72 65 3e 3c 70 72 65 3e 20  der </pre><pre> 
3e70: 20 20 20 20 20 20 20 20 7c 20 20 20 20 20 20 23          |      #
3e80: 20 66 72 6f 6d 20 74 68 65 20 73 69 6c 6b 65 78   from the silkex
3e90: 61 70 70 20 66 6f 6c 64 65 72 2e 3c 2f 70 72 65  app folder.</pre
3ea0: 3e 3c 70 72 65 3e 20 20 20 20 20 20 20 20 20 7c  ><pre>         |
3eb0: 3c 2f 70 72 65 3e 3c 70 72 65 3e 20 20 20 20 20  </pre><pre>     
3ec0: 20 20 20 20 2b 2d 2d 73 69 6c 6b 65 78 61 70 70      +--silkexapp
3ed0: 5f 63 6f 6e 74 72 6f 6c 20 20 23 20 63 6f 70 79  _control  # copy
3ee0: 20 6f 66 20 74 68 65 20 66 6f 6c 64 65 72 20 66   of the folder f
3ef0: 72 6f 6d 20 74 68 65 20 73 72 63 3c 2f 70 72 65  rom the src</pre
3f00: 3e 3c 70 72 65 3e 3c 62 72 3e 0a 0d 0a 0d 0a 3c  ><pre><br>.....<
3f10: 2f 70 72 65 3e 0d 0a 3c 2f 70 72 65 3e 0a 0a 3c  /pre>..</pre>..<
3f20: 70 3e 53 69 6c 6b 65 78 61 70 70 73 20 61 72 65  p>Silkexapps are
3f30: 20 69 6e 73 74 61 6c 6c 65 64 2f 75 6e 70 61 63   installed/unpac
3f40: 6b 65 64 20 74 6f 3c 2f 70 3e 0a 3c 75 6c 3e 0a  ked to</p>.<ul>.
3f50: 3c 6c 69 3e 7e 2f 2e 73 69 6c 6b 74 6f 72 72 65  <li>~/.silktorre
3f60: 6e 74 2f 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63  nt/mmmv_silkexec
3f70: 2f 73 69 6c 6b 65 78 61 70 70 73 2f 26 6c 74 3b  /silkexapps/&lt;
3f80: 76 61 72 69 6f 75 73 20 66 6f 6c 64 65 72 73 20  various folders 
3f90: 74 68 61 74 20 68 61 76 65 20 74 68 65 69 72 0a  that have their.
3fa0: 6e 61 6d 65 20 64 65 72 69 76 65 64 20 66 72 6f  name derived fro
3fb0: 6d 20 73 69 6c 6b 65 78 61 70 70 20 53 69 6c 6b  m silkexapp Silk
3fc0: 74 6f 72 72 65 6e 74 20 70 61 63 6b 65 74 20 6e  torrent packet n
3fd0: 61 6d 65 26 67 74 3b 2f 26 6c 74 3b 53 69 6c 6b  ame&gt;/&lt;Silk
3fe0: 65 78 61 70 70 0a 53 69 6c 6b 74 6f 72 72 65 6e  exapp.Silktorren
3ff0: 74 20 70 61 63 6b 65 74 20 6e 61 6d 65 26 67 74  t packet name&gt
4000: 3b 5f 64 69 72 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e  ;_dir</li>.</ul>
4010: 0a 0a 3c 70 3e 54 6f 20 6d 61 6b 65 20 69 74 20  ..<p>To make it 
4020: 70 6f 73 73 69 62 6c 65 20 74 6f 20 73 68 61 72  possible to shar
4030: 65 20 73 69 6c 6b 65 78 61 70 70 73 20 62 65 74  e silkexapps bet
4040: 77 65 65 6e 20 64 69 66 66 65 72 65 6e 74 20 75  ween different u
4050: 73 65 72 73 20 6f 66 20 61 20 73 61 6d 65 0a 73  sers of a same.s
4060: 79 73 74 65 6d 2c 20 70 61 63 6b 61 67 65 73 20  ystem, packages 
4070: 61 72 65 20 61 6c 6c 6f 77 65 64 20 74 6f 20 61  are allowed to a
4080: 73 73 75 6d 65 20 74 68 61 74 20 74 68 65 79 20  ssume that they 
4090: 68 61 76 65 20 77 72 69 74 65 20 61 63 63 65 73  have write acces
40a0: 73 20 6f 6e 6c 79 20 74 6f 26 6e 62 73 70 3b 3c  s only to&nbsp;<
40b0: 2f 70 3e 0a 0a 3c 70 3e 3c 2f 70 3e 0a 3c 75 6c  /p>..<p></p>.<ul
40c0: 3e 0a 3c 6c 69 3e 2f 74 6d 70 3c 2f 6c 69 3e 0a  >.<li>/tmp</li>.
40d0: 3c 6c 69 3e 7e 2f 2e 73 69 6c 6b 74 6f 72 72 65  <li>~/.silktorre
40e0: 6e 74 2f 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63  nt/mmmv_silkexec
40f0: 2f 61 70 70 6c 69 63 61 74 69 6f 6e 73 5f 77 72  /applications_wr
4100: 69 74 65 5f 61 72 65 61 2f 26 6c 74 3b 60 77 68  ite_area/&lt;`wh
4110: 6f 61 6d 69 60 26 67 74 3b 2f 26 6c 74 3b 72 65  oami`&gt;/&lt;re
4120: 6c 61 74 69 76 65 0a 70 61 74 68 20 66 72 6f 6d  lative.path from
4130: 20 70 61 63 6b 61 67 65 20 63 6f 6c 6c 65 63 74   package collect
4140: 69 6f 6e 20 72 6f 6f 74 26 67 74 3b 3c 2f 6c 69  ion root&gt;</li
4150: 3e 0a 3c 6c 69 3e 26 6c 74 3b 6c 69 73 74 20 6f  >.<li>&lt;list o
4160: 66 20 66 6f 6c 64 65 72 73 20 74 68 61 74 20 63  f folders that c
4170: 61 6e 20 62 65 20 71 75 65 72 69 65 64 20 62 79  an be queried by
4180: 20 22 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 20   "mmmv_silkexec 
4190: 73 79 73 5f 26 6c 74 3b 73 6f 6d 65 74 68 69 6e  sys_&lt;somethin
41a0: 67 26 67 74 3b 2c 0a 66 6f 72 20 65 78 61 6d 70  g&gt;,.for examp
41b0: 6c 65 3a 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65  le: mmmv_silkexe
41c0: 63 20 73 79 73 5f 73 5f 66 70 5f 72 61 6d 64 69  c sys_s_fp_ramdi
41d0: 73 6b 5f 31 20 26 67 74 3b 3c 2f 6c 69 3e 0a 3c  sk_1 &gt;</li>.<
41e0: 2f 75 6c 3e 0a 0a 3c 70 3e 3c 2f 70 3e 0a 0a 3c  /ul>..<p></p>..<
41f0: 70 3e 54 68 65 20 6d 6d 6d 76 5f 73 69 6c 6b 65  p>The mmmv_silke
4200: 78 65 63 20 70 72 65 70 72 6f 63 65 73 73 65 73  xec preprocesses
4210: 20 73 69 6c 6b 65 78 61 70 70 20 6e 61 6d 65 73   silkexapp names
4220: 20 62 79 20 72 65 6d 6f 76 69 6e 67 20 61 20 73   by removing a s
4230: 69 6e 67 6c 65 20 69 6e 73 74 61 6e 63 65 0a 6f  ingle instance.o
4240: 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  f the following 
4250: 70 72 65 66 69 78 65 73 3a 3c 62 3e 20 22 73 79  prefixes:<b> "sy
4260: 73 5f 22 2c 20 22 75 73 72 5f 22 2e 3c 2f 62 3e  s_", "usr_".</b>
4270: 20 41 20 73 69 6c 6b 65 78 61 70 70 20 74 68 61   A silkexapp tha
4280: 74 20 69 73 20 6f 6e 20 50 41 54 48 0a 61 6e 64  t is on PATH.and
4290: 20 68 61 73 20 61 20 6e 61 6d 65 20 6f 66 20 22   has a name of "
42a0: 73 79 73 5f 66 6f 6f 22 20 73 68 6f 75 6c 64 20  sys_foo" should 
42b0: 62 65 20 65 78 65 63 75 74 65 64 20 61 73 20 22  be executed as "
42c0: 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 20 75 73  mmmv_silkexec us
42d0: 72 5f 73 79 73 5f 66 6f 6f 22 2e 0a 54 68 65 3c  r_sys_foo"..The<
42e0: 62 3e 20 70 72 65 66 69 78 20 22 73 79 73 5f 22  b> prefix "sys_"
42f0: 20 69 73 20 72 65 73 65 72 76 65 64 20 66 6f 72   is reserved for
4300: 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65 63 20 63   mmmv_silkexec c
4310: 6f 6d 6d 61 6e 64 73 2e 3c 2f 62 3e 20 50 72 65  ommands.</b> Pre
4320: 70 72 6f 63 65 73 73 69 6e 67 0a 69 73 20 6e 6f  processing.is no
4330: 74 20 61 70 70 6c 69 65 64 2c 20 77 68 65 6e 20  t applied, when 
4340: 74 68 65 20 73 69 6c 6b 65 78 61 70 70 20 65 78  the silkexapp ex
4350: 65 63 75 74 61 62 6c 65 20 69 73 20 72 65 66 65  ecutable is refe
4360: 72 72 65 64 20 74 68 72 6f 75 67 68 20 61 20 66  rred through a f
4370: 75 6c 6c 20 70 61 74 68 2e 0a 26 6e 62 73 70 3b  ull path..&nbsp;
4380: 54 68 65 20 6d 6d 6d 76 5f 73 69 6c 6b 65 78 65  The mmmv_silkexe
4390: 63 20 73 65 74 73 20 74 68 65 20 76 61 6c 75 65  c sets the value
43a0: 73 20 6f 66 20 73 69 6c 6b 65 78 61 70 70 20 72  s of silkexapp r
43b0: 75 6e 74 69 6d 65 20 61 6e 64 20 62 75 69 6c 64  untime and build
43c0: 74 69 6d 65 0a 65 6e 69 72 6f 6e 6d 65 6e 74 20  time.enironment 
43d0: 76 61 72 69 61 62 6c 65 73 20 61 63 63 6f 72 64  variables accord
43e0: 69 6e 67 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f  ing to the follo
43f0: 77 69 6e 67 20 70 72 65 63 65 64 65 6e 63 65 3a  wing precedence:
4400: 26 6e 62 73 70 3b 3c 2f 70 3e 0a 0a 3c 70 3e 3c  &nbsp;</p>..<p><
4410: 2f 70 3e 0a 3c 6f 6c 3e 0a 3c 6c 69 3e 49 66 20  /p>.<ol>.<li>If 
4420: 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 65 78  configuration ex
4430: 69 73 74 73 2c 20 6f 76 65 72 72 69 64 65 20 74  ists, override t
4440: 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20  he value of the 
4450: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69  environment vari
4460: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50  able.</li>.<li>P
4470: 72 65 66 69 78 20 74 68 65 20 76 61 6c 75 65 20  refix the value 
4480: 66 72 6f 6d 20 74 68 65 20 73 74 65 70 20 31 20  from the step 1 
4490: 77 69 74 68 20 74 68 65 20 76 61 6c 75 65 20 66  with the value f
44a0: 72 6f 6d 20 74 68 65 20 63 6f 6e 66 69 67 75 72  rom the configur
44b0: 61 74 69 6f 6e 0a 66 69 6c 65 2e 3c 2f 6c 69 3e  ation.file.</li>
44c0: 0a 3c 6c 69 3e 50 72 65 66 69 78 20 74 68 65 20  .<li>Prefix the 
44d0: 76 61 6c 75 65 20 66 72 6f 6d 20 74 68 65 20 73  value from the s
44e0: 74 65 70 20 32 20 77 69 74 68 20 74 68 65 20 66  tep 2 with the f
44f0: 75 6c 6c 20 70 61 74 68 20 6f 66 20 74 68 65 20  ull path of the 
4500: 73 69 6c 6b 65 78 61 70 70 20 62 69 6e 0a 66 6f  silkexapp bin.fo
4510: 6c 64 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 26  lder.</li>.<li>&
4520: 6c 74 3b 45 78 65 63 75 74 65 20 74 68 65 20 65  lt;Execute the e
4530: 78 65 63 75 74 61 62 6c 65 20 66 72 6f 6d 20 74  xecutable from t
4540: 68 65 20 73 69 6c 6b 65 78 61 70 70 20 62 69 6e  he silkexapp bin
4550: 20 66 6f 6c 64 65 72 20 6f 72 0a 73 69 6c 6b 65   folder or.silke
4560: 78 61 70 70 5f 63 6f 6e 74 72 6f 6c 20 66 6f 6c  xapp_control fol
4570: 64 65 72 2e 26 67 74 3b 3c 2f 6c 69 3e 0a 3c 2f  der.&gt;</li>.</
4580: 6f 6c 3e 0a 0a 3c 70 3e 3c 2f 70 3e 0a 0a 3c 70  ol>..<p></p>..<p
4590: 3e 3c 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 3c  ><br>.</p>..<p><
45a0: 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 68 31 3e 54 65  br>.</p>..<h1>Te
45b0: 73 74 69 6e 67 20 28 49 6e 63 6c 75 64 69 6e 67  sting (Including
45c0: 20 56 65 72 69 66 69 63 61 74 69 6f 6e 20 61 6e   Verification an
45d0: 64 20 41 75 64 69 74 73 29 3c 2f 68 31 3e 0a 0a  d Audits)</h1>..
45e0: 3c 70 3e 53 69 6c 6b 65 78 65 63 61 70 70 20 69  <p>Silkexecapp i
45f0: 73 20 65 78 65 63 75 74 65 64 20 6f 6e 6c 79 2c  s executed only,
4600: 20 69 66 20 61 6c 6c 20 6f 66 20 69 74 73 20 64   if all of its d
4610: 65 70 65 6e 64 65 6e 63 69 65 73 20 68 61 76 65  ependencies have
4620: 20 62 65 65 6e 0a 72 65 63 75 72 73 69 76 65 6c   been.recursivel
4630: 79 20 61 75 64 69 74 65 64 2f 74 65 73 74 65 64  y audited/tested
4640: 20 62 79 20 74 72 75 73 74 65 64 20 70 61 72 74   by trusted part
4650: 69 65 73 2e 20 44 69 66 66 65 72 65 6e 74 20 70  ies. Different p
4660: 61 72 74 69 65 73 20 74 72 75 73 74 0a 64 69 66  arties trust.dif
4670: 66 65 72 65 6e 74 20 6f 74 68 65 72 20 70 61 72  ferent other par
4680: 74 69 65 73 2e 20 54 72 75 73 74 20 69 73 20 61  ties. Trust is a
4690: 20 6d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61   multidimensiona
46a0: 6c 20 76 61 6c 75 65 2e 20 41 20 76 65 72 79 20  l value. A very 
46b0: 6b 69 6e 64 68 65 61 72 74 65 64 0a 61 6e 64 20  kindhearted.and 
46c0: 6e 6f 74 20 63 6f 72 72 75 70 74 20 70 65 72 73  not corrupt pers
46d0: 6f 6e 20 63 61 6e 20 62 65 20 74 6f 74 61 6c 6c  on can be totall
46e0: 79 20 75 6e 74 72 75 73 74 77 6f 72 74 68 79 20  y untrustworthy 
46f0: 66 72 6f 6d 20 74 68 65 69 72 20 63 61 70 61 62  from their capab
4700: 69 6c 69 74 69 65 73 0a 70 6f 69 6e 74 20 6f 66  ilities.point of
4710: 20 76 69 65 77 2e 20 4f 6e 20 74 68 65 20 6f 74   view. On the ot
4720: 68 65 72 20 68 61 6e 64 2c 20 73 6f 6d 65 74 69  her hand, someti
4730: 6d 65 73 2c 20 61 74 20 73 6f 6d 65 20 6e 61 72  mes, at some nar
4740: 72 6f 77 20 63 6f 6e 74 65 78 74 73 2c 20 65 6e  row contexts, en
4750: 65 6d 69 65 73 0a 63 61 6e 20 62 65 20 6d 6f 72  emies.can be mor
4760: 65 20 74 72 75 73 74 77 6f 72 74 68 79 20 74 68  e trustworthy th
4770: 61 6e 20 66 72 69 65 6e 64 73 2e 20 46 6f 72 20  an friends. For 
4780: 65 78 61 6d 70 6c 65 2c 20 65 6e 65 6d 69 65 73  example, enemies
4790: 20 6d 69 67 68 74 20 68 61 76 65 20 61 20 67 6f   might have a go
47a0: 6f 64 0a 74 72 61 63 6b 20 72 65 63 6f 72 64 20  od.track record 
47b0: 6f 66 20 66 69 6e 65 20 73 6b 69 6c 6c 73 20 61  of fine skills a
47c0: 6e 64 20 62 65 69 6e 67 20 72 69 67 6f 72 6f 75  nd being rigorou
47d0: 73 20 61 6e 64 20 74 68 65 79 20 6d 69 67 68 74  s and they might
47e0: 20 75 73 65 20 73 6f 6d 65 0a 63 6f 6d 70 6f 6e   use some.compon
47f0: 65 6e 74 2c 20 73 6f 66 74 77 61 72 65 20 70 61  ent, software pa
4800: 63 6b 61 67 65 2c 20 61 74 20 73 6f 6d 65 20 73  ckage, at some s
4810: 65 63 75 72 69 74 79 20 77 69 73 65 20 65 78 74  ecurity wise ext
4820: 72 65 6d 65 6c 79 20 63 72 69 74 69 63 61 6c 20  remely critical 
4830: 72 6f 6c 65 2c 0a 77 68 69 6c 65 20 62 65 69 6e  role,.while bein
4840: 67 20 76 65 72 79 20 72 69 67 6f 72 6f 75 73 20  g very rigorous 
4850: 61 74 20 74 68 65 20 63 6f 6e 73 74 72 75 63 74  at the construct
4860: 69 6f 6e 20 6f 66 20 74 68 65 69 72 20 73 6f 66  ion of their sof
4870: 74 77 61 72 65 20 63 6f 6d 70 6f 6e 65 6e 74 2e  tware component.
4880: 3c 2f 70 3e 0a 0a 3c 70 3e 47 69 76 65 6e 20 74  </p>..<p>Given t
4890: 68 61 74 0a 3c 61 20 68 72 65 66 3d 22 68 74 74  hat.<a href="htt
48a0: 70 3a 2f 2f 6d 61 72 74 69 6e 2e 73 6f 66 74 66  p://martin.softf
48b0: 31 2e 63 6f 6d 2f 67 2f 79 65 6c 6c 6f 77 5f 73  1.com/g/yellow_s
48c0: 6f 61 70 5f 6f 70 65 72 61 5f 62 6c 6f 67 2f 74  oap_opera_blog/t
48d0: 68 65 2d 66 75 74 75 72 65 2d 6f 66 2d 73 65 63  he-future-of-sec
48e0: 75 72 69 74 79 2d 61 75 64 69 74 73 2d 65 70 69  urity-audits-epi
48f0: 73 6f 64 65 2d 30 22 3e 74 68 65 0a 6f 6e 6c 79  sode-0">the.only
4900: 20 70 72 6f 70 65 72 20 77 61 79 20 74 6f 20 76   proper way to v
4910: 65 72 69 66 79 2f 72 65 76 69 65 77 20 63 6f 64  erify/review cod
4920: 65 20 69 73 20 74 6f 20 73 74 75 64 79 20 69 74  e is to study it
4930: 20 69 6e 20 61 20 66 75 6c 6c 79 20 61 75 74 6f   in a fully auto
4940: 6d 61 74 65 64 20 77 61 79 3c 2f 61 3e 3c 69 3e  mated way</a><i>
4950: 28 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a  (<a href="https:
4960: 2f 2f 61 72 63 68 69 76 65 2e 69 73 2f 68 33 48  //archive.is/h3H
4970: 4a 34 22 3e 61 72 63 68 69 76 61 6c 0a 63 6f 70  J4">archival.cop
4980: 79 3c 2f 61 3e 29 3c 2f 69 3e 2c 20 74 68 65 72  y</a>)</i>, ther
4990: 65 20 68 61 73 20 74 6f 20 62 65 20 61 20 77 61  e has to be a wa
49a0: 79 20 74 6f 20 73 75 62 73 63 72 69 62 65 20 74  y to subscribe t
49b0: 6f 20 74 68 65 20 74 65 73 74 69 6e 67 2f 76 65  o the testing/ve
49c0: 72 69 66 69 63 61 74 69 6f 6e 0a 73 79 73 74 65  rification.syste
49d0: 6d 20 6f 66 20 74 68 65 20 74 72 75 73 74 65 64  m of the trusted
49e0: 20 70 61 72 74 69 65 73 2e 20 54 6f 20 61 76 6f   parties. To avo
49f0: 69 64 20 61 20 44 65 6e 69 61 6c 20 6f 66 20 53  id a Denial of S
4a00: 65 72 76 69 63 65 20 61 74 74 61 63 6b 20 62 79  ervice attack by
4a10: 20 68 61 63 6b 69 6e 67 0a 69 6e 74 6f 20 74 68   hacking.into th
4a20: 65 20 74 65 73 74 69 6e 67 2f 76 65 72 69 66 69  e testing/verifi
4a30: 63 61 74 69 6f 6e 20 73 79 73 74 65 6d 73 20 6f  cation systems o
4a40: 66 20 6f 6e 65 20 6f 66 20 74 68 65 20 74 72 75  f one of the tru
4a50: 73 74 65 64 20 70 61 72 74 69 65 73 2c 20 74 68  sted parties, th
4a60: 65 20 6c 6f 63 61 6c 0a 73 65 74 74 69 6e 67 73  e local.settings
4a70: 20 6f 66 20 74 68 65 20 6d 6d 6d 76 5f 73 69 6c   of the mmmv_sil
4a80: 6b 65 78 65 63 20 73 68 6f 75 6c 64 20 74 72 65  kexec should tre
4a90: 61 74 20 61 20 74 65 73 74 20 66 61 69 6c 75 72  at a test failur
4aa0: 65 20 6f 66 20 61 20 66 6f 72 6d 65 72 6c 79 0a  e of a formerly.
4ab0: 61 63 63 65 70 74 65 64 20 63 6f 6d 70 6f 6e 65  accepted compone
4ac0: 6e 74 20 61 73 20 61 20 74 69 6d 65 64 20 77 61  nt as a timed wa
4ad0: 72 6e 69 6e 67 2c 20 77 68 65 72 65 20 74 68 65  rning, where the
4ae0: 20 77 61 72 6e 69 6e 67 20 73 74 61 74 65 20 6d   warning state m
4af0: 6f 76 65 73 20 74 6f 20 61 0a 62 6c 6f 63 6b 65  oves to a.blocke
4b00: 64 2f 66 61 69 6c 65 64 20 73 74 61 74 65 20 77  d/failed state w
4b10: 69 74 68 20 61 20 64 65 6c 61 79 2e 20 54 68 65  ith a delay. The
4b20: 20 64 65 6c 61 79 20 67 69 76 65 73 20 74 68 65   delay gives the
4b30: 20 74 72 75 73 74 65 64 20 70 61 72 74 79 20 74   trusted party t
4b40: 69 6d 65 20 74 6f 0a 68 61 6e 64 6c 65 20 74 68  ime to.handle th
4b50: 65 20 68 61 63 6b 2e 3c 2f 70 3e 0a 0a 3c 70 3e  e hack.</p>..<p>
4b60: 3c 62 72 3e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 3c 62  <br>.</p>..<p><b
4b70: 72 3e 0a 3c 2f 70 3e 0a 0a 3c 68 31 3e 43 6f 6d  r>.</p>..<h1>Com
4b80: 70 6f 6e 65 6e 74 73 20 74 6f 20 53 74 75 64 79  ponents to Study
4b90: 3c 2f 68 31 3e 0a 0a 3c 70 3e 3c 2f 70 3e 0a 3c  </h1>..<p></p>.<
4ba0: 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d  ul>.<li><a href=
4bb0: 22 68 74 74 70 73 3a 2f 2f 66 69 72 65 6a 61 69  "https://firejai
4bc0: 6c 2e 77 6f 72 64 70 72 65 73 73 2e 63 6f 6d 2f  l.wordpress.com/
4bd0: 22 3e 46 69 72 65 6a 61 69 6c 3c 2f 61 3e 20 28  ">Firejail</a> (
4be0: 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f  <a href="https:/
4bf0: 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6e 65 74 62  /github.com/netb
4c00: 6c 75 65 33 30 2f 66 69 72 65 6a 61 69 6c 22 3e  lue30/firejail">
4c10: 73 72 63 3c 2f 61 3e 29 0a 69 73 20 61 20 4c 69  src</a>).is a Li
4c20: 6e 75 78 20 73 70 65 63 69 66 69 63 20 63 6f 6d  nux specific com
4c30: 70 6f 6e 65 6e 74 2c 20 62 75 74 20 69 74 20 6d  ponent, but it m
4c40: 69 67 68 74 20 62 65 20 61 20 75 73 65 66 75 6c  ight be a useful
4c50: 20 61 64 64 2d 6f 6e 20 6f 6e 20 4c 69 6e 75 78   add-on on Linux
4c60: 2e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 3c 70  .</li>.</ul>..<p
4c70: 3e 3c 2f 70 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c  ></p>..<p><br>.<
4c80: 2f 70 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c 2f 70  /p>..<p><br>.</p
4c90: 3e 0a 0a 3c 68 31 3e 3c 61 20 68 72 65 66 3d 22  >..<h1><a href="
4ca0: 2e 2f 77 69 6b 69 3f 6e 61 6d 65 3d 45 78 70 65  ./wiki?name=Expe
4cb0: 72 69 6d 65 6e 74 3a 2b 6d 6d 6d 76 5f 73 69 6c  riment:+mmmv_sil
4cc0: 6b 65 78 65 63 3a 2b 73 75 62 2d 73 70 65 63 69  kexec:+sub-speci
4cd0: 66 69 63 61 74 69 6f 6e 73 3a 22 3e 45 78 70 65  fications:">Expe
4ce0: 72 69 6d 65 6e 74 61 6c 0a 53 75 62 73 70 65 63  rimental.Subspec
4cf0: 69 66 69 63 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f  ifications</a></
4d00: 68 31 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a 3c 2f 70  h1>..<p><br>.</p
4d10: 3e 0a 0a 3c 68 31 3e 3c 61 20 68 72 65 66 3d 22  >..<h1><a href="
4d20: 2e 2f 77 69 6b 69 3f 6e 61 6d 65 3d 45 78 70 65  ./wiki?name=Expe
4d30: 72 69 6d 65 6e 74 3a 2b 6d 6d 6d 76 5f 73 69 6c  riment:+mmmv_sil
4d40: 6b 65 78 65 63 3a 2b 52 65 66 65 72 65 6e 63 65  kexec:+Reference
4d50: 73 22 3e 52 65 66 65 72 65 6e 63 65 73 3c 2f 61  s">References</a
4d60: 3e 3c 2f 68 31 3e 0a 0a 3c 70 3e 3c 62 72 3e 0a  ></h1>..<p><br>.
4d70: 3c 2f 70 3e 0a 0a 5a 20 39 61 64 33 62 35 38 64  </p>..Z 9ad3b58d
4d80: 30 36 64 34 35 33 31 38 35 33 66 66 30 64 34 32  06d4531853ff0d42
4d90: 66 61 63 36 62 32 64 61 0a                       fac6b2da.