Skip to content

Install

Lyle Johnson edited this page Jan 27, 2017 · 17 revisions

The Polysync Transcoder is developed and tested specifically on the Ubuntu 16.04 distribution. It can work on most POSIX-compliant systems where the following dependencies can be satisfied.

Dependencies

CMake is used by polysync-transcode, the others are needed to build and install Mettle.

sudo apt-get install --yes cmake patchelf python-setuptools

Compiler

Boost dependencies include both Hana and DLL; both of which appeared first in Boost-1.61.

Hana requires an up to date C++14 compiler, which include Clang >= 3.5.0 and GCC >=6.0.0.

GCC and Clang are both new enough on 16.10 by default. On 16.04, the default version of gcc (5.4) is too old to compile Hana, but the default Clang (3.8) works fine.

Using clang on either 16.10 or 16.04:

sudo apt-get install --yes clang

Ubuntu 16.10:

Both Hana and DLL are in the default boost package.

sudo apt-get install libboost-dev

Ubuntu 16.04:

The default version of boost on 16.04 is too old, so a newer version must be installed. Here, we show how this may be done from source. Because the transcoder uses dynamically loaded plugins, boost must be dynamically linked, so if you get fancier with the build here do not also disable the dynamic libraries.

The steps below were taken from the guide http://www.boost.org/doc/libs/1_63_0/more/getting_started/unix-variants.html:

wget https://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz
tar xvzf boost_1_63_0.tar.gz
cd boost_1_63_0
./bootstrap.sh --with-toolset=clang
./b2 -j2 cxxflags="-std=c++11"
... wait ...
sudo ./b2 install
... wait some more...

Boost should appear in /usr/local/, waiting to be found by CMake's FindBoost feature.

Mettle

If you want to compile and run the unit tests, you must install the Mettle unit test framework.

Mettle also has strict requirements on C++14 compliance, but they are weaker than Hana so the clang >= 3.5 or gcc >= 6.0 installed prior to Boost is already sufficient. Mettle has it's own dependencies, which we also show.

cd
sudo easy_install bfg9000
git clone https://github.com/jimporter/mettle.git
cd mettle/
scripts/vendorize_bencode.py
9k build
cd build
make
sudo make install

Now /usr/local/bin/mettle should appear along with /usr/local/include/mettle.

Build polysync-transcode

cd
git clone https://github.com/PolySync/polysync-transcoder.git
mkdir polysync-transcoder/build
cd polysync-transcoder/build
CXX=clang++ cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
make -j4
sudo make install
Clone this wiki locally