eSim Installer (Ubuntu OS) ==== 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. 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 6. Download eSim Manual from eSim website, add it to `library/browser/User-Manual/` and update the file name of Manual in `src/browser/UserManual.py` accordingly. 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 11. 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. Update `VERSION` file to this release number. 2. Add the installer file in `eSim-` folder. 3. Add the eSim executable file in `eSim-` folder. Also, remove following files from the folder: - `.git` folder - `code` folder - `src` folder - conf.py - setup.py - index.rst - requirement.txt - .gitignore - .travis.yml 4. Add the zip file of `NGHDL` (`nghdl-master.zip`) in the eSim folder. 5. Compress `kicadLibrary` folder to a `tar.xz` format. 6. Compress `eSim-` to a zip format for distribution.