<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="markdown-here-wrapper" data-md-url="Thunderbird"
      style="max-width: 40em;">
      <p style="margin: 0px 0px 1.2em ! important;">Hi all,</p>
      <p style="margin: 0px 0px 1.2em ! important;">in light of <a
href="http://liste.sslmit.unibo.it/pipermail/cwb/2017-November/002953.html">this
          recent thread</a> re: compiling CWB from source, it occurred
        to me it might be useful to create a CWB package for <a
          href="http://spack.readthedocs.io/">Spack</a>. Spack is a
        cross-platform package manager which builds software from
        source, <strong>automatically resolving dependencies</strong>
        so you don’t have to. A second advantage is that <strong>it
          doesn’t need to run with admin privileges</strong>. You just
        need Git and a fairly recent version of Python 2 (preferably,
        Python 3 works as well but you might hit snags).</p>
      <p style="margin: 0px 0px 1.2em ! important;">I added <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">cwb</code>
        and <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">cwb-perl</code>
        packages to a fork of Spack I maintain, so installing trunk CWB
        can now be done like this:</p>
      <pre style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code class="hljs language-sh" style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block ! important;display: block; overflow-x: auto; padding: 0.5em; background: rgb(63, 63, 63) none repeat scroll 0% 0%; color: rgb(220, 220, 220); -moz-text-size-adjust: none;">git clone --depth <span class="hljs-number" style="color: rgb(140, 208, 211);">1</span> <a class="moz-txt-link-freetext" href="https://github.com/dlukes/spack.git">https://github.com/dlukes/spack.git</a>
<span class="hljs-built_in" style="color: rgb(204, 147, 147);">cd</span> spack
<span class="hljs-comment" style="color: rgb(127, 159, 127);"># cwb is installed automatically as a dependency of cwb-perl</span>
./bin/spack install cwb-perl
<span class="hljs-comment" style="color: rgb(127, 159, 127);"># symlink the cwb-perl package into perl</span>
./bin/spack activate cwb-perl
<span class="hljs-comment" style="color: rgb(127, 159, 127);"># create a prefix where all relevant binaries will be symlinked</span>
<span class="hljs-comment" style="color: rgb(127, 159, 127);"># (change /path/to/prefix to a directory of your choice)</span>
./bin/spack view symlink /path/to/prefix cwb-perl
<span class="hljs-comment" style="color: rgb(127, 159, 127);"># update your PATH</span>
<span class="hljs-keyword" style="color: rgb(227, 206, 171);">export</span> PATH=<span class="hljs-string" style="color: rgb(204, 147, 147);">"/path/to/prefix/bin:<span class="hljs-variable" style="color: rgb(239, 220, 188);">$PATH</span>"</span>
<span class="hljs-comment" style="color: rgb(127, 159, 127);"># use cwb</span>
cwb-encode ...
cwb-make ...
cqp ...
</code></pre>
      <p style="margin: 0px 0px 1.2em ! important;">A practical note:
        when testing this on Arch Linux, I found out that flex 2.6.4
        doesn’t compile on my system. Fortunately, with Spack, you can
        request a specific version of a dependency:</p>
      <pre style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code class="hljs language-sh" style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block ! important;display: block; overflow-x: auto; padding: 0.5em; background: rgb(63, 63, 63) none repeat scroll 0% 0%; color: rgb(220, 220, 220); -moz-text-size-adjust: none;"><span class="hljs-comment" style="color: rgb(127, 159, 127);"># list information about the flex package in Spack, including</span>
<span class="hljs-comment" style="color: rgb(127, 159, 127);"># available versions</span>
./bin/spack info flex
<span class="hljs-comment" style="color: rgb(127, 159, 127);"># install cwb-perl with specific version of flex</span>
./bin/spack install <span class="hljs-string" style="color: rgb(204, 147, 147);">'<a class="moz-txt-link-abbreviated" href="mailto:cwb-perl^flex@2.6.3">cwb-perl^flex@2.6.3</a>'</span>
<span class="hljs-comment" style="color: rgb(127, 159, 127);"># etc.</span>
</code></pre>
      <p style="margin: 0px 0px 1.2em ! important;">If you’d rather use
        Spack’s <a href="https://github.com/LLNL/spack">official
          repository</a> (though my fork differs only slightly), you
        can, just manually add the <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">cwb</code>
        and <code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">cwb-perl</code>
        package definitions where they belong in Spack’s directory tree:</p>
      <pre style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code class="hljs language-sh" style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block ! important;display: block; overflow-x: auto; padding: 0.5em; background: rgb(63, 63, 63) none repeat scroll 0% 0%; color: rgb(220, 220, 220); -moz-text-size-adjust: none;">git clone --depth <span class="hljs-number" style="color: rgb(140, 208, 211);">1</span> <a class="moz-txt-link-freetext" href="https://github.com/LLNL/spack.git">https://github.com/LLNL/spack.git</a>
<span class="hljs-built_in" style="color: rgb(204, 147, 147);">cd</span> spack
mkdir -p var/spack/repos/builtin/packages/{cwb,cwb-perl}
cwb=var/spack/repos/builtin/packages/cwb/package.py
cwb_perl=var/spack/repos/builtin/packages/cwb-perl/package.py
curl <a class="moz-txt-link-freetext" href="https://raw.githubusercontent.com/dlukes/spack/develop/">https://raw.githubusercontent.com/dlukes/spack/develop/</a><span class="hljs-variable" style="color: rgb(239, 220, 188);">$cwb</span> -o <span class="hljs-variable" style="color: rgb(239, 220, 188);">$cwb</span>
curl <a class="moz-txt-link-freetext" href="https://raw.githubusercontent.com/dlukes/spack/develop/">https://raw.githubusercontent.com/dlukes/spack/develop/</a><span class="hljs-variable" style="color: rgb(239, 220, 188);">$cwb_perl</span> -o <span class="hljs-variable" style="color: rgb(239, 220, 188);">$cwb_perl</span>
./bin/spack install cwb-perl
<span class="hljs-comment" style="color: rgb(127, 159, 127);"># etc.</span>
</code></pre>
      <p style="margin: 0px 0px 1.2em ! important;">Note that if you
        have a working setup for installing CWB from source, you might
        as well keep using it :) But if you’re starting from scratch,
        you might find this easier, depending on circumstances. If this
        method doesn’t work for you, let me know via the <a
          href="https://github.com/dlukes/spack/issues/new">issue
          tracker</a> on GitHub.</p>
      <p style="margin: 0px 0px 1.2em ! important;">Best,</p>
      <p style="margin: 0px 0px 1.2em ! important;">David</p>
      <div
title="MDH:SGkgYWxsLDxicj48YnI+aW4gbGlnaHQgb2YgW3RoaXMgcmVjZW50IHRocmVhZF0oaHR0cDovL2xpc3RlLnNzbG1pdC51bmliby5pdC9waXBlcm1haWwvY3diLzIwMTctTm92ZW1iZXIvMDAyOTUzLmh0
bWwpIHJlOiBjb21waWxpbmcgQ1dCIGZyb20gc291cmNlLCBpdCBvY2N1cnJlZCB0byBtZSBpdCBt
aWdodCBiZSB1c2VmdWwgdG8gY3JlYXRlIGEgQ1dCIHBhY2thZ2UgZm9yIFtTcGFja10oaHR0cDov
L3NwYWNrLnJlYWR0aGVkb2NzLmlvLykuIFNwYWNrIGlzIGEgY3Jvc3MtcGxhdGZvcm0gcGFja2Fn
ZSBtYW5hZ2VyIHdoaWNoIGJ1aWxkcyBzb2Z0d2FyZSBmcm9tIHNvdXJjZSwgKiphdXRvbWF0aWNh
bGx5IHJlc29sdmluZyBkZXBlbmRlbmNpZXMqKiBzbyB5b3UgZG9uJ3QgaGF2ZSB0by4gQSBzZWNv
bmQgYWR2YW50YWdlIGlzIHRoYXQgKippdCBkb2Vzbid0IG5lZWQgdG8gcnVuIHdpdGggYWRtaW4g
cHJpdmlsZWdlcyoqLiBZb3UganVzdCBuZWVkIEdpdCBhbmQgYSBmYWlybHkgcmVjZW50IHZlcnNp
b24gb2YgUHl0aG9uIDIgKHByZWZlcmFibHksIFB5dGhvbiAzIHdvcmtzIGFzIHdlbGwgYnV0IHlv
dSBtaWdodCBoaXQgc25hZ3MpLjxicj48YnI+SSBhZGRlZCBgY3diYCBhbmQgYGN3Yi1wZXJsYCBw
YWNrYWdlcyB0byBhIGZvcmsgb2YgU3BhY2sgSSBtYWludGFpbiwgc28gaW5zdGFsbGluZyB0cnVu
ayBDV0IgY2FuIG5vdyBiZSBkb25lIGxpa2UgdGhpczo8YnI+PGJyPmBgYHNoPGJyPmdpdCBjbG9u
ZSAtLWRlcHRoIDEgaHR0cHM6Ly9naXRodWIuY29tL2RsdWtlcy9zcGFjay5naXQ8YnI+Y2Qgc3Bh
Y2s8YnI+IyBjd2IgaXMgaW5zdGFsbGVkIGF1dG9tYXRpY2FsbHkgYXMgYSBkZXBlbmRlbmN5IG9m
IGN3Yi1wZXJsPGJyPi4vYmluL3NwYWNrIGluc3RhbGwgY3diLXBlcmw8YnI+IyBzeW1saW5rIHRo
ZSBjd2ItcGVybCBwYWNrYWdlIGludG8gcGVybDxicj4uL2Jpbi9zcGFjayBhY3RpdmF0ZSBjd2It
cGVybDxicj4jIGNyZWF0ZSBhIHByZWZpeCB3aGVyZSBhbGwgcmVsZXZhbnQgYmluYXJpZXMgd2ls
bCBiZSBzeW1saW5rZWQ8YnI+IyAoY2hhbmdlIC9wYXRoL3RvL3ByZWZpeCB0byBhIGRpcmVjdG9y
eSBvZiB5b3VyIGNob2ljZSk8YnI+Li9iaW4vc3BhY2sgdmlldyBzeW1saW5rIC9wYXRoL3RvL3By
ZWZpeCBjd2ItcGVybDxicj4jIHVwZGF0ZSB5b3VyIFBBVEg8YnI+ZXhwb3J0IFBBVEg9Ii9wYXRo
L3RvL3ByZWZpeC9iaW46JFBBVEgiPGJyPiMgdXNlIGN3Yjxicj5jd2ItZW5jb2RlIC4uLjxicj5j
d2ItbWFrZSAuLi48YnI+Y3FwIC4uLjxicj5gYGA8YnI+PGJyPkEgcHJhY3RpY2FsIG5vdGU6IHdo
ZW4gdGVzdGluZyB0aGlzIG9uIEFyY2ggTGludXgsIEkgZm91bmQgb3V0IHRoYXQgZmxleCAyLjYu
NCBkb2Vzbid0IGNvbXBpbGUgb24gbXkgc3lzdGVtLiBGb3J0dW5hdGVseSwgd2l0aCBTcGFjaywg
eW91IGNhbiByZXF1ZXN0IGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBhIGRlcGVuZGVuY3k6PGJyPjxi
cj5gYGBzaDxicj4jIGxpc3QgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZsZXggcGFja2FnZSBpbiBT
cGFjaywgaW5jbHVkaW5nPGJyPiMgYXZhaWxhYmxlIHZlcnNpb25zPGJyPi4vYmluL3NwYWNrIGlu
Zm8gZmxleDxicj4jIGluc3RhbGwgY3diLXBlcmwgd2l0aCBzcGVjaWZpYyB2ZXJzaW9uIG9mIGZs
ZXg8YnI+Li9iaW4vc3BhY2sgaW5zdGFsbCAnY3diLXBlcmxeZmxleEAyLjYuMyc8YnI+IyBldGMu
PGJyPmBgYDxicj48YnI+SWYgeW91J2QgcmF0aGVyIHVzZSBTcGFjaydzIFtvZmZpY2lhbCByZXBv
c2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vTExOTC9zcGFjaykgKHRob3VnaCBteSBmb3JrIGRp
ZmZlcnMgb25seSBzbGlnaHRseSksIHlvdSBjYW4sIGp1c3QgbWFudWFsbHkgYWRkIHRoZSBgY3di
YCBhbmQgYGN3Yi1wZXJsYCBwYWNrYWdlIGRlZmluaXRpb25zIHdoZXJlIHRoZXkgYmVsb25nIGlu
IFNwYWNrJ3MgZGlyZWN0b3J5IHRyZWU6PGJyPjxicj5gYGBzaDxicj5naXQgY2xvbmUgLS1kZXB0
aCAxIGh0dHBzOi8vZ2l0aHViLmNvbS9MTE5ML3NwYWNrLmdpdDxicj5jZCBzcGFjazxicj5ta2Rp
ciAtcCB2YXIvc3BhY2svcmVwb3MvYnVpbHRpbi9wYWNrYWdlcy97Y3diLGN3Yi1wZXJsfTxicj5j
d2I9dmFyL3NwYWNrL3JlcG9zL2J1aWx0aW4vcGFja2FnZXMvY3diL3BhY2thZ2UucHk8YnI+Y3di
X3Blcmw9dmFyL3NwYWNrL3JlcG9zL2J1aWx0aW4vcGFja2FnZXMvY3diLXBlcmwvcGFja2FnZS5w
eTxicj5jdXJsIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9kbHVrZXMvc3BhY2sv
ZGV2ZWxvcC8kY3diIC1vICRjd2I8YnI+Y3VybCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVu
dC5jb20vZGx1a2VzL3NwYWNrL2RldmVsb3AvJGN3Yl9wZXJsIC1vICRjd2JfcGVybDxicj4uL2Jp
bi9zcGFjayBpbnN0YWxsIGN3Yi1wZXJsPGJyPiMgZXRjLjxicj5gYGA8YnI+PGJyPk5vdGUgdGhh
dCBpZiB5b3UgaGF2ZSBhIHdvcmtpbmcgc2V0dXAgZm9yIGluc3RhbGxpbmcgQ1dCIGZyb20gc291
cmNlLCB5b3UgbWlnaHQgYXMgd2VsbCBrZWVwIHVzaW5nIGl0IDopIEJ1dCBpZiB5b3UncmUgc3Rh
cnRpbmcgZnJvbSBzY3JhdGNoLCB5b3UgbWlnaHQgZmluZCB0aGlzIGVhc2llciwgZGVwZW5kaW5n
IG9uIGNpcmN1bXN0YW5jZXMuIElmIHRoaXMgbWV0aG9kIGRvZXNuJ3Qgd29yayBmb3IgeW91LCBs
ZXQgbWUga25vdyB2aWEgdGhlIFtpc3N1ZSB0cmFja2VyXShodHRwczovL2dpdGh1Yi5jb20vZGx1
a2VzL3NwYWNrL2lzc3Vlcy9uZXcpIG9uIEdpdEh1Yi48YnI+PGJyPkJlc3QsPGJyPjxicj5EYXZp
        ZDxicj48YnI+CiAgICA="
style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0;">​</div>
    </div>
  </body>
</html>