diff options
-rw-r--r-- | Windows/Makerchip-Build.md | 93 | ||||
-rw-r--r-- | Windows/README.md | 31 | ||||
-rwxr-xr-x | Windows/makerchip.spec | 40 | ||||
-rwxr-xr-x | Windows/sandpiper-saas.spec | 40 |
4 files changed, 193 insertions, 11 deletions
diff --git a/Windows/Makerchip-Build.md b/Windows/Makerchip-Build.md new file mode 100644 index 00000000..1de65b11 --- /dev/null +++ b/Windows/Makerchip-Build.md @@ -0,0 +1,93 @@ +Instructions for Standalone Executables +=== + +It contains all the documentation for making Makerchip-App and Sandpiper SaaS standalone executables (using PyInstaller), and packaging it for eSim. + +Following instructions are common to both Makerchip-App and Sandpiper SaaS: + +1. Download and install "Python-3.6.8", "Git For Windows". Use "Git Bash" for all following shell commands. + + Reference - https://gitforwindows.org/ + +2. Add alias to python.exe in Git shell: + + $ alias python='winpty python.exe' #Need to be done for each new shell created + +3. Download `virtualenv` package as: + + $ pip install virtualenv + + +## Makerchip-App Executable: + +4. Clone the Makerchip repository from: https://gitlab.com/rweda/makerchip-app + +5. Create a virtual environment as: + + $ virtualenv makerchip-venv + +6. Activate the virtual environment as: + + $ source makerchip-venv/Scripts/activate + +7. Install the following Python dependencies through pip within the virtual environment: + + $ pip install pyinstaller click requests sseclient-py + +8. Test whether only Makerchip-App dependencies are available or not: + + $ pip freeze + +9. Navigate to the top level directory of the cloned repository and create the spec file as: + + $ pyi-makespec.exe --onefile -w -n makerchip --add-data='makerchip/asset;asset' --add-data='makerchip/_vendor/native_web_app-1.0.2.dist-info/LICENSE;native_web_app-1.0.2.dist-info' --add-data='LICENSE.md;.' makerchip/__main__.py + +10. Create onefile executable using PyInstaller as: + + $ pyinstaller.exe -F --clean makerchip.spec + +11. Verify whether all the Makerchip-App source files (`*.py`) and the additional data files have been included in `Analysis-00.toc` file under the build folder generated by PyInstaller. + + + +## Sandpiper SaaS Executable: + +4. Clone the Sandpiper SaaS repository from: https://gitlab.com/rweda/sandpiper-saas/ + +5. Create a virtual environment as: + + $ virtualenv sandpiper-saas-venv + +6. Activate the virtual environment as: + + $ source sandpiper-saas-venv/Scripts/activate + +7. Install the following Python dependencies through pip within the virtual environment: + + $ pip install pyinstaller click requests + +8. Test whether only Sandpiper SaaS dependencies are available or not: + + $ pip freeze + +9. Navigate to the top level directory of the cloned repository and create the spec file as: + + $ pyi-makespec.exe --onefile -w -n sandpiper-saas --add-data='LICENSE.md;.' sandpiper/__main__.py + +10. Create onefile executable using PyInstaller as: + + $ pyinstaller.exe -F --clean sandpiper-saas.spec + +11. Verify whether all the Sandpiper SaaS source files (`*.py`) and the additional data files have been included in `Analysis-00.toc` file under the build folder generated by PyInstaller. + + + +## Packaging Makerchip for eSim + +1. Create a directory named `makerchip`. + +2. Place both the above generated executables in the `makerchip` directory. + +3. Compress `makerchip` directory in 7z format and place it in eSim's installer folder. + +4. Follow rest of the [instructions](https://github.com/FOSSEE/eSim/tree/installers/Windows/README.md) for packaging eSim. diff --git a/Windows/README.md b/Windows/README.md index b494e22b..e9cd8673 100644 --- a/Windows/README.md +++ b/Windows/README.md @@ -1,7 +1,7 @@ eSim Installer (Windows OS) ==== -It contains all the documentation for making eSim executable (using PyInstaller) and packaging eSim for Windows 7 and above. +It contains all the documentation for making eSim executable (using PyInstaller) and packaging eSim for Windows 8 and above. > Note: Do not develop eSim on Windows OS. Work only with `installers` branch on Windows OS and do development on Linux OS. > Reference : https://stackoverflow.com/questions/37672886/cannot-get-rid-of-unstaged-files-in-git-on-my-local @@ -66,6 +66,8 @@ It contains all the documentation for making eSim executable (using PyInstaller) - .gitignore - .travis.yml - INSTALL + - library/modelParamXML/Nghdl/.gitignore + - library/modelParamXML/Ngveri/.gitignore - `library/browser/User-Manual/figures` folder - library/browser/User-Manual/eSim.html @@ -74,32 +76,39 @@ It contains all the documentation for making eSim executable (using PyInstaller) - everything from `modules` folder except `Connectors_Terminal_Blocks.pretty/TerminalBlock_Altech_AK300-2_P5.00mm.kicad_mod` and `TO_SOT_Packages_THT.pretty/TO-220-3_Vertical.kicad_mod` - everything from `temmplate` folder except `kicad.pro` file - Now, compress it in zip format, place it at `eSim\library` and delete that folder. + Now, compress it in zip format (`kicadLibrary.zip`), place it at `eSim/library` and delete that folder. -4. Add eSim user manual `eSim_Manual_<version>.pdf` at location `library/browser/User-Manual`. +4. Update the ``image`` directory path in the `library/browser/welcome.html` as: -5. Replace `LICENSE` file with `LICENSE.rtf` file in `eSim` folder. + From `src="../../images/logo.png"` to `src="images/logo.png"` -6. Compress `eSim` folder in 7z format and add it to the installer folder (Make sure that there is folder named `eSim` inside this compressed file). +5. Add eSim user manual `eSim_Manual_<version>.pdf` at location `library/browser/User-Manual`. -7. Add the dependencies for `NGHDL` to the installer folder. +6. Replace `LICENSE` file with `LICENSE.rtf` file in `eSim` folder. + +7. Compress `eSim` folder in 7z format and add it to the installer folder (Make sure that there is folder named `eSim` inside this compressed file). + +8. Add the dependencies for `NGHDL` to the installer folder. > Note: Refer this [documentation](https://github.com/fossee/nghdl/tree/installers/Windows/README.md) on packaging NGHDL for Windows OS. -8. Apply NSIS plugins. Refer [here](https://github.com/fossee/nghdl/tree/installers/Windows/NSISplugins/) for the same. +9. Apply NSIS plugins. Refer [here](https://github.com/fossee/nghdl/tree/installers/Windows/NSISplugins/) for the same. -9. Add KiCad installer `kicad-4.0.7-i686.exe` to the installer folder. +10. Add KiCad installer `kicad-4.0.7-i686.exe` to the installer folder. > Note: Refer this [documentation](https://github.com/fossee/KiCad-eSim/blob/executables/README.md) on packaging KiCad for Windows OS -10. Add following files/folder to the installer folder: +11. Add following files/folder to the installer folder: - License file (`rtf` format) - Logo (`ico` format) - `esim-setup-script` file - Makerchip executables (`makerchip.7z` file) - - `nghdl-setup-script` file fromt the `NGHDL` repository -11. Compile the NSI script (`esim-setup-script` file). Now only use the generated installer for distribution. + > Note: Refer this [documentation](https://github.com/fossee/tree/installers/Windows/Makerchip-Build.md) on packaging Makerchip-App and Sandpiper SaaS for Windows OS + + - `nghdl-setup-script` file from the `NGHDL` repository + +12. Compile the NSI script (`esim-setup-script` file). Now only use the generated installer for distribution. > Note: If there is any warning on `Eliminating "zeroing code out"`, then have a look at this reference - https://nsis-dev.github.io/NSIS-Forums/html/t-358040.html diff --git a/Windows/makerchip.spec b/Windows/makerchip.spec new file mode 100755 index 00000000..0f4ee8e0 --- /dev/null +++ b/Windows/makerchip.spec @@ -0,0 +1,40 @@ +# -*- mode: python ; coding: utf-8 -*- + + +block_cipher = None + + +a = Analysis(['makerchip\\__main__.py'], + pathex=[], + binaries=[], + datas=[('makerchip/asset', 'asset'), ('makerchip/_vendor/native_web_app-1.0.2.dist-info/LICENSE', 'native_web_app-1.0.2.dist-info'), ('LICENSE.md', '.')], + hiddenimports=[], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False) +pyz = PYZ(a.pure, a.zipped_data, + cipher=block_cipher) + +exe = EXE(pyz, + a.scripts, + a.binaries, + a.zipfiles, + a.datas, + [], + name='makerchip', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=False, + disable_windowed_traceback=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None ) diff --git a/Windows/sandpiper-saas.spec b/Windows/sandpiper-saas.spec new file mode 100755 index 00000000..a84da033 --- /dev/null +++ b/Windows/sandpiper-saas.spec @@ -0,0 +1,40 @@ +# -*- mode: python ; coding: utf-8 -*- + + +block_cipher = None + + +a = Analysis(['sandpiper\\__main__.py'], + pathex=[], + binaries=[], + datas=[('LICENSE.md', '.')], + hiddenimports=[], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False) +pyz = PYZ(a.pure, a.zipped_data, + cipher=block_cipher) + +exe = EXE(pyz, + a.scripts, + a.binaries, + a.zipfiles, + a.datas, + [], + name='sandpiper-saas', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=False, + disable_windowed_traceback=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None ) |