eSim Installer (Ubuntu) ==== It contains all the documenation for making eSim executable (using PyInstaller) and eSim Installation Script on Ubuntu 14.04 and above. ## eSim Executable: 1. Download `virtualenv` package as: $ pip install virtualenv 2. Create a virtual environment as: $ virtualenv -p /usr/bin/python3 eSim 3. Activate the virtual environment as: $ source eSim/bin/activate 4. Install all Python dependencies for eSim within the virtual environment as: $ pip install pyinstaller $ pip install matplotlib $ pip install tornado $ pip install --upgrade 'setuptools<45.0.0' $ sudo apt install build-essential python3-dev libqt4-dev qt4-dev-tools $ mkdir eSim/build $ cd eSim/build/ $ wget http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.12.3/PyQt4_gpl_x11-4.12.3.tar.gz $ wget https://www.riverbankcomputing.com/static/Downloads/sip/4.19.21/sip-4.19.21.tar.gz $ tar xzvf sip-4.19.21.tar.gz $ tar xvzf PyQt4_gpl_x11-4.12.3.tar.gz $ cd sip-4.19.21/ $ python configure.py --sip-module PyQt4.sip $ make $ make install $ cd ../PyQt4_gpl_x11-4.12.3/ $ python configure.py $ make $ make install 5. Now uninstall PyQt4, matplotlib, numpy, dateutil and cycler globally. 6. Test whether only eSim dependencies are available or not: $ pip freeze > Note : Following dependencies should be available - > - PyQt4 > - matplotlib > - numpy > - dateutil > - pyparsing > - six > - cycler.py 7. Create spec file as: $ pyi-makespec --onefile -n eSim /src/frontEnd/Application.py 8. Add `PyQt4.sip` as hiddenimports in the generated spec file. 9. Create onefile executable using pyinstaller as: $ pyinstaller -F --clean eSim.spec 10. Verify whether all eSim `src` files (`*.py`) have been included in `Analysis-00.toc` file under the build folder generated by PyInstaller. ## How to package eSim? 1. Add the installer file in `eSim-` folder. 2. Add the eSim executable file in `eSim-` folder. 2. Remove following files from the folder: - `.git` folder - `code` folder - `src` folder - conf.py - setup.py - index.rst - requirement.txt - .gitignore - .travis.yml 3. Add the tar file of `NGHDL` in the eSim folder.