-
Notifications
You must be signed in to change notification settings - Fork 30
Installation guide
The DASH-IF Conformance tools can be installed directly on an Ubuntu system or using a Docker Container.
git clone https://github.com/Dash-Industry-Forum/DASH-IF-Conformance
If you want to check out the code version before the major JCCP refactoring use the following command:
git clone --recurse-submodules --branch master https://github.com/Dash-Industry-Forum/DASH-IF-Conformance
- PHP 7.0 or above
- Java 1.8.0
- Apache 2.4
- Python 2.7
sudo apt install php php-dev php-xml php-curl php-xdebug libapache2-mod-php
sudo apt install openjdk-8-jdk
Make sure that java and javac will use 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
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
sudo apt 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 <REPLACE_WITH_PATH_TO_REPO>/DASH-IF-Conformance /var/www/html/
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 systemctl restart apache2
Check if the Apache server is running
sudo systemctl status apache2
sudo apt install python2.7
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
sudo python2.7 get-pip.py
pip2 install matplotlib
Omit for now: sudo apt install libstdc++6:i386
Navigate to http://localhost/DASH-IF-Conformance/
- Navigate to the root folder of the DASH-IF-Conformance project
- Use
./build.shto locally build your docker image with all dependencies.
Create and run container, e.g.: docker run -d --name dc-tester -p 80:80 dash-if-conformance.
-
-d: detach mode: Containers started in detached mode exit when the root process used to run the container exit -
--name dc-tester: Identifier of the container set to "dc-tester" -
-p 80:80: Public container port 80 at host port 80
In order to have code changes on the local host reflect into the container, use a volume mount to make the code available in the container. This way it is not needed to rebuild a new docker image everytime you would change code.
From you repository root run e.g.: docker run -d --name dc-tester -p 80:80 -v `pwd`:/var/www/html dash-if-conformance.
Navigate to http://localhost/Conformance-Frontend/
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: 0Error: Unable to initialize main class Validator. Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
- Probably caused by missing modules. Java EE APIs are removed in Java 11
- Related issues:
- The path to your conformance frontend probably contains one or more whitespaces. That leads to problems in
MPDValidation.php, specifically with the functionchdir. For instance the path/home/dsi/Conformance\ Software/DASH-IF-Conformancedoes not work. Use/home/dsi/Conformance-Software/DASH-IF-Conformanceinstead.