blob: c907fb0ae4fbec340319f28ec8ffd8d3ae84ddb6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
eSim Installer (Ubuntu OS)
====
It contains all the documenation for making eSim executable (using PyInstaller) and eSim Installation Script on Ubuntu 16.04 and above.
## eSim Executable:
> Note: pip tool corresponds to Python-3.5.2 on Ubuntu 16.04 and Python-3.6.9 on Ubuntu 18.04
1. Download `virtualenv` package and create virtual environment as:
$ pip install virtualenv
$ virtualenv -p /usr/bin/python3 eSim
OR
$ sudo apt install -y python3-venv
$ python3 -m venv eSim
2. Activate the virtual environment as:
$ source eSim/bin/activate
3. Install all Python dependencies for eSim within the virtual environment as:
$ pip install wheel
$ pip install pyinstaller
$ pip install --upgrade 'matplotlib==3.0.3'
$ 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
4. 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
5. 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.
6. Create spec file as:
$ pyi-makespec --onefile -n eSim <path_to_eSim>/src/frontEnd/Application.py
7. Add `PyQt4.sip` as hiddenimports in the generated spec file.
8. Create onefile executable using pyinstaller as:
$ pyinstaller -F --clean eSim.spec
9. Verify whether all eSim `src` files (`*.py`) have been included in `Analysis-00.toc` file under the build folder generated by PyInstaller.
## Fully-Static Bundled Version of eSim:
1. To create a [fully-static bundled version](https://github.com/pyinstaller/pyinstaller/wiki/FAQ#GNULinux) of eSim (through PyInstaller), use a tool like [StaticX](https://github.com/JonathonReinhart/staticx/).
2. To create fully-static eSim :
- Activate the virtual environment as:
$ source eSim/bin/activate
- Install StaticX as:
$ pip install staticx
$ pip install patchelf-wrapper
- Create static eSim as:
$ staticx /path/to/executable/eSim /path/to/output/executable/eSim
3. To verify if all dynamic libraries are removed :
- Type following command in a terminal :
$ ldd path/to/output/executable/eSim
- Output of above command should be similar to ` not a dynamic executable`
## How to package eSim?
1. Update `VERSION` file to this release number.
2. Add the installer file in `eSim-<version>` folder.
3. Add the eSim executable file in `eSim-<version>` folder (only if it is made available). Also, remove following files from the folder:
- `.git` folder
- `code` folder
- `src` folder (Applicable only if eSim executable is made)
- 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-<version>` to a zip format for distribution.
|