Skip to content

Installation guide

Daniel Silhavy edited this page Jan 26, 2022 · 16 revisions

The DASH-IF Conformance tools can be installed directly on an Ubuntu system or using a Docker Container.

Native installation on Ubuntu 20.04.3

Install PHP

sudo apt-get install php php-dev php-xml php-curl php-xdebug libapache2-mod-php

Install Java and JDK (probably need to install an older version, see troubleshooting below)

Install latest version

sudo apt update
sudo apt install default-jre
sudo apt install default-jdk

Install Java 8

sudo apt-get install openjdk-8-jdk

Switch Java versions

update-alternatives --list java
sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 
sudo update-alternatives --set javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac

Install Apache2

sudo apt-get install apache2 apache2-doc

The default root folder is “/var/www/html/”. Go to the root folder, copy or move the web contents to this directory or make a softlink of the projects:

ln -s /home/dsi/Conformance-Software/DASH-IF-Conformance /var/www/html/DASH-IF-Conformance

Add your username to the group "www-data"

Type whoami to get your username

Check if your user is already in the group

groups <username>

Add the user if not already in the group

sudo usermod -a -G www-data <username>

Add write permissions to the users in the "www-data" group

sudo chmod -R 0777 /var/www/

Add permission to run processes without password for users in the group "www-data" sudo visudo Add these lines at the end www-data ALL=NOPASSWD: ALL

Restart Apache server

sudo service apache2 restart

Check if the Apache server is running

systemctl status apache2

Navigate to http://localhost

Install Python

sudo apt update
sudo apt install python2

Install pip

Note: sudo apt-get install python-pip results in Package python-pip is not available, but is referred to by another package See https://stackoverflow.com/questions/64187581/e-package-python-pip-has-no-installation-candidate

Workaround:

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
sudo python2 get-pip.py

Install matplotlib

Note: sudo apt-get install python-matplotlib results in Package python-matplotlib is not available

Use: pip2 install matplotlib

Install ANT

The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications 

sudo apt-get install ant

Install Stdc++

Omitted for now: sudo apt-get install libstdc++6:i386

Clone the conformance software

git clone --recurse-submodules https://github.com/Dash-Industry-Forum/DASH-IF-Conformance

Docker Installation

Use ./build.sh to locally build your docker image with all dependencies.

Create and run container from repository root directory, e.g.: docker run -d --name dc-tester -p 80:80 -v pwd:/var/www/html dash-if-conformance.

Troubleshooting

progress.xml not found

http://localhost/DASH-IF-Conformance/Conformance-Frontend/temp/id55592398/progress.xml?1642587399051 404 (Not Found)

  • Probably related to missing rights to write in the temp folder? 
  • Creating the folder manually and assigning write rights for all users solved this error
  • Possibly some processes are not terminated and run forever until website is refreshed. Saw multiple requests to progress.xml

MPD validation report

MPD validation report: 0Error: Unable to initialize main class Validator. Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

Update Java alternatives

sudo apt-get install openjdk-8-jdk 
update-alternatives --list java
sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 
sudo update-alternatives --set javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 

Needing a file to validate and intermediate file

  • The path to your conformance frontend probably contains one or more whitespaces. That leads to problems in MPDValidation.php, specifically with the function chdir. For instance the path /home/dsi/Conformance\ Software/DASH-IF-Conformance does not work. Use /home/dsi/Conformance-Software/DASH-IF-Conformance instead.
Clone this wiki locally