blob: 8b635e4afec788a02caf37047712b077fce6f72f (
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
eSim Installer (Ubuntu OS)
====
It contains all the documenation for making eSim executable (using PyInstaller), eSim Installation Script and packaging eSim with and without eSim executable (through source) 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 Bundling of eSim Executable:
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`
## Without eSim Executable (through source):
Update following files by changing the relative paths before packaging the `src` folder with the release.
- `browser\UserManual.py` --> path to manual
- `browser\Welcome.py` --> path to library
- `configuration\Appconfig.py` --> path to library
- `frontEnd\Application.py` --> path to library, pathmagic and images
- `frontEnd\ProjectExplorer.py` --> path to images
- `frontEnd\Workspace.py` --> path to images
- `kicadtoNgspice\DeviceModel.py` --> path to library
- `kicadtoNgspice\Processing.py` --> path to library
- `kicadtoNgspice\SubcircuitTab.py` --> path to library
- `modelEditor\ModelEditor.py` --> path to library
- `subcircuit\newSub.py` --> path to library
- `subcircuit\openSub.py` --> path to library
- `subcircuit\uploadSub.py` --> path to library
## 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.
|