summaryrefslogtreecommitdiff
path: root/Debian
diff options
context:
space:
mode:
authorrahulp132020-08-03 17:33:20 +0530
committerrahulp132020-08-03 17:33:20 +0530
commit6d8e4e44cd76b849ccea4b77bc0b9ffbea8be3e7 (patch)
tree09f910bde64550ef2ffa3cef416cbb7161c389e0 /Debian
parentaae467621d6a9ff255235cd50710d793363f7faa (diff)
downloadeSim-6d8e4e44cd76b849ccea4b77bc0b9ffbea8be3e7.tar.gz
eSim-6d8e4e44cd76b849ccea4b77bc0b9ffbea8be3e7.tar.bz2
eSim-6d8e4e44cd76b849ccea4b77bc0b9ffbea8be3e7.zip
initial commit
Diffstat (limited to 'Debian')
-rw-r--r--Debian/eSim.spec34
-rwxr-xr-xDebian/install-eSim.sh388
-rwxr-xr-xDebian/readme.md146
3 files changed, 0 insertions, 568 deletions
diff --git a/Debian/eSim.spec b/Debian/eSim.spec
deleted file mode 100644
index 15061f6b..00000000
--- a/Debian/eSim.spec
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- mode: python ; coding: utf-8 -*-
-
-block_cipher = None
-
-a = Analysis(['eSim-2.0/src/frontEnd/Application.py'],
- pathex=['/home/rahul/Music'],
- binaries=[],
- datas=[],
- hiddenimports=['PyQt4.sip'],
- hookspath=[],
- 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='eSim',
- debug=False,
- bootloader_ignore_signals=False,
- strip=False,
- upx=True,
- upx_exclude=[],
- runtime_tmpdir=None,
- console=True,
- version='eSim-2.0/VERSION',
- icon='eSim-2.0/images/logo.png')
diff --git a/Debian/install-eSim.sh b/Debian/install-eSim.sh
deleted file mode 100755
index 74d59992..00000000
--- a/Debian/install-eSim.sh
+++ /dev/null
@@ -1,388 +0,0 @@
-#!/bin/bash
-#===============================================================================
-# FILE: install-eSim.sh
-#
-# USAGE: ./install-eSim.sh --install
-# OR
-# ./install-eSim.sh --uninstall
-#
-# DESCRIPTION: Installation script for eSim EDA Suite
-#
-# OPTIONS: ---
-# REQUIREMENTS: ---
-# BUGS: ---
-# NOTES: ---
-# AUTHOR: Fahim Khan, Rahul Paknikar, Saurabh Bansode
-# ORGANIZATION: eSim Team, FOSSEE, IIT Bombay
-# CREATED: Wednesday 15 July 2015 15:26
-# REVISION: Sunday 02 August 2020 01:26
-#===============================================================================
-
-set -e # Set exit option immediately on error
-set -E # inherit ERR trap by shell functions
-
-error_exit() {
- echo -e "\n\nError! Kindly resolve above error(s) and try again."
- echo -e "\nAborting Installation...\n"
-}
-
-# Trap on function error_exit before exiting on error
-trap error_exit ERR
-
-
-# All variables goes here
-config_dir="$HOME/.esim"
-config_file="config.ini"
-eSim_Home=`pwd`
-ngspiceFlag=0
-
-## All Functions goes here
-
-function createConfigFile
-{
-
- # Creating config.ini file and adding configuration information
- # Check if config file is present
- if [ -d $config_dir ];then
- rm $config_dir/$config_file && touch $config_dir/$config_file
- else
- mkdir $config_dir && touch $config_dir/$config_file
- fi
-
- echo "[eSim]" >> $config_dir/$config_file
- echo "eSim_HOME = $eSim_Home" >> $config_dir/$config_file
- echo "LICENSE = %(eSim_HOME)s/LICENSE" >> $config_dir/$config_file
- echo "KicadLib = %(eSim_HOME)s/library/kicadLibrary.tar.xz" >> $config_dir/$config_file
- echo "IMAGES = %(eSim_HOME)s/images" >> $config_dir/$config_file
- echo "VERSION = %(eSim_HOME)s/VERSION" >> $config_dir/$config_file
- echo "MODELICA_MAP_JSON = %(eSim_HOME)s/library/ngspicetoModelica/Mapping.json" >> $config_dir/$config_file
-
-}
-
-
-function installNghdl
-{
-
- echo "Installing NGHDL..........................."
- unzip -o nghdl.zip
- cd nghdl/
- chmod +x install-nghdl.sh
-
- # Do not trap on error of any command. Let NGHDL script handle its own errors.
- trap "" ERR
-
- ./install-nghdl.sh --install # Install NGHDL
-
- # Set trap again to error_exit function to exit on errors
- trap error_exit ERR
-
- ngspiceFlag=1
- cd ..
-
-}
-
-
-function addKicadPPA
-{
-
- #sudo add-apt-repository ppa:js-reynaud/ppa-kicad
- kicadppa="reynaud/kicad-4"
- findppa=$(grep -h -r "^deb.*$kicadppa*" /etc/apt/sources.list* > /dev/null 2>&1 || test $? = 1)
- if [ -z "$findppa" ]; then
- echo "Adding KiCad-4 PPA to local apt-repository"
- if [[ $(lsb_release -rs) == 20.* ]]; then
- sudo add-apt-repository --yes "deb http://ppa.launchpad.net/js-reynaud/kicad-4/ubuntu bionic main"
- sudo touch /etc/apt/preferences.d/preferences
- echo "Package: kicad" | sudo tee -a /etc/apt/preferences.d/preferences > /dev/null
- echo "Pin: version 4.0.7*" | sudo tee -a /etc/apt/preferences.d/preferences > /dev/null
- echo "Pin-Priority: 501" | sudo tee -a /etc/apt/preferences.d/preferences > /dev/null
- sudo add-apt-repository --yes "deb http://in.archive.ubuntu.com/ubuntu/ bionic main universe"
- else
- sudo add-apt-repository --yes ppa:js-reynaud/kicad-4
- fi
- else
- echo "KiCad-4 is available in synaptic"
- fi
-
-}
-
-
-function installDependency
-{
-
- #Update apt repository
- echo "Updating apt index files..................."
- sudo apt-get update
-
- echo "Installing Xterm..........................."
- sudo apt-get install -y xterm
-
- echo "Installing PyQt5..........................."
- sudo apt-get install -y python3-pyqt5
-
- echo "Installing Matplotlib......................"
- sudo apt-get install -y python3-matplotlib
-
- if [[ $(lsb_release -rs) != 16.* ]]; then
- echo "Installing Distutils......................."
- sudo apt-get install python3-distutils
- fi
-
- echo "Installing KiCad..........................."
- sudo apt-get install -y --no-install-recommends kicad
- if [[ $(lsb_release -rs) == 20.* ]]; then
- sudo add-apt-repository -r "deb http://in.archive.ubuntu.com/ubuntu/ bionic main universe"
- fi
-
-}
-
-
-function copyKicadLibrary
-{
-
- if [ -d ~/.config/kicad ];then
- echo "kicad folder already exists"
- else
- echo ".config/kicad does not exist"
- mkdir ~/.config/kicad
- fi
-
- # Dump KiCad config path
- echo "$HOME/.config/kicad" > $eSim_Home/library/supportFiles/kicad_config_path.txt
-
- #Copy fp-lib-table for switching modes
- cp -r library/supportFiles/fp-lib-table ~/.config/kicad/
- cp -r library/supportFiles/fp-lib-table-online ~/.config/kicad/
- echo "fp-lib-table copied in the directory"
-
- #Extract custom KiCad Library
- tar -xJf library/kicadLibrary.tar.xz
-
- #Copy KiCad libraries
- echo "Copying KiCad libraries...................."
-
- sudo cp -r kicadLibrary/library /usr/share/kicad/
- sudo cp -r kicadLibrary/modules /usr/share/kicad/
- sudo cp -r kicadLibrary/template/* /usr/share/kicad/template/
-
- #Copy KiCad library made for eSim
- sudo cp -r kicadLibrary/kicad_eSim-Library/* /usr/share/kicad/library/
-
- # Full path of 'kicad.pro file'
- KICAD_PRO="/usr/share/kicad/template/kicad.pro"
- KICAD_ORIGINAL="/usr/share/kicad/template/kicad.pro.original"
-
- if [ -f "$KICAD_ORIGINAL" ];then
- echo "kicad.pro.original file found"
- sudo cp -rv kicadLibrary/template/kicad.pro ${KICAD_PRO}
- else
- echo "Making copy of original file"
- sudo cp -rv ${KICAD_PRO}{,.original}
- sudo cp -rv kicadLibrary/template/kicad.pro ${KICAD_PRO}
- fi
-
- set +e # Temporary disable exit on error
- trap "" ERR # Do not trap on error of any command
-
- # Remove extracted KiCad Library - not needed anymore
- rm -rf kicadLibrary
-
- set -e # Re-enable exit on error
- trap error_exit ERR
-
- #Change ownership from Root to the User
- sudo chown -R $USER:$USER /usr/share/kicad/library/
-
-}
-
-
-function createDesktopStartScript
-{
- # Generating new esim-start.sh
- echo '#!/bin/bash' > esim-start.sh
- echo "cd $eSim_Home/src/frontEnd" >> esim-start.sh
- echo "python3 Application.py" >> esim-start.sh
-
- # Make it executable
- sudo chmod 755 esim-start.sh
- # Copy esim start script
- sudo cp -vp esim-start.sh /usr/bin/esim
- # Remove local copy of esim start script
- rm esim-start.sh
-
- # Generating esim.desktop file
- echo "[Desktop Entry]" > esim.desktop
- echo "Version=1.0" >> esim.desktop
- echo "Name=eSim" >> esim.desktop
- echo "Comment=EDA Tool" >> esim.desktop
- echo "GenericName=eSim" >> esim.desktop
- echo "Keywords=eda-tools" >> esim.desktop
- echo "Exec=esim %u" >> esim.desktop
- echo "Terminal=true" >> esim.desktop
- echo "X-MultipleArgs=false" >> esim.desktop
- echo "Type=Application" >> esim.desktop
- getIcon="$config_dir/logo.png"
- echo "Icon=$getIcon" >> esim.desktop
- echo "Categories=Development;" >> esim.desktop
- echo "MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;" >> esim.desktop
- echo "StartupNotify=true" >> esim.desktop
-
- # Make esim.desktop file executable
- sudo chmod 755 esim.desktop
- # Copy desktop icon file to share applications
- sudo cp -vp esim.desktop /usr/share/applications/
- # Copy desktop icon file to Desktop
- cp -vp esim.desktop $HOME/Desktop/
-
- set +e # Temporary disable exit on error
- trap "" ERR # Do not trap on error of any command
-
- # Check if the target OS is Ubuntu 18 or not
- if [[ $(lsb_release -rs) == 18.* || $(lsb_release -rs) == 20.* ]]; then
- # Make esim.desktop file as trusted application
- gio set $HOME/Desktop/esim.desktop "metadata::trusted" true
- # Set Permission and Execution bit
- chmod a+x $HOME/Desktop/esim.desktop
- fi
-
- # Remove local copy of esim.desktop file
- rm esim.desktop
-
- set -e # Re-enable exit on error
- trap error_exit ERR
-
- # Copying logo.png to .esim directory to access as icon
- cp -vp images/logo.png $config_dir
-
-}
-
-
-####################################################################
-# MAIN START FROM HERE #
-####################################################################
-
-### Checking if file is passsed as argument to script
-
-if [ "$#" -eq 1 ];then
- option=$1
-else
- echo "USAGE : "
- echo "./install-eSim.sh --install"
- echo "./install-eSim.sh --uninstall"
- exit 1;
-fi
-
-## Checking flags
-
-if [ $option == "--install" ];then
- echo "Enter proxy details if you are connected to internet thorugh proxy"
-
- echo -n "Is your internet connection behind proxy? (y/n): "
- read getProxy
- if [ $getProxy == "y" -o $getProxy == "Y" ];then
- echo -n 'Proxy Hostname :'
- read proxyHostname
-
- echo -n 'Proxy Port :'
- read proxyPort
-
- echo -n username@$proxyHostname:$proxyPort :
- read username
-
- echo -n 'Password :'
- read -s passwd
-
- unset http_proxy
- unset https_proxy
- unset HTTP_PROXY
- unset HTTPS_PROXY
- unset ftp_proxy
- unset FTP_PROXY
-
- export http_proxy=http://$username:$passwd@$proxyHostname:$proxyPort
- export https_proxy=http://$username:$passwd@$proxyHostname:$proxyPort
- export https_proxy=http://$username:$passwd@$proxyHostname:$proxyPort
- export HTTP_PROXY=http://$username:$passwd@$proxyHostname:$proxyPort
- export HTTPS_PROXY=http://$username:$passwd@$proxyHostname:$proxyPort
- export ftp_proxy=http://$username:$passwd@$proxyHostname:$proxyPort
- export FTP_PROXY=http://$username:$passwd@$proxyHostname:$proxyPort
-
- echo "Install with proxy"
- # Calling functions
- createConfigFile
- addKicadPPA
- installDependency
- copyKicadLibrary
- installNghdl
- createDesktopStartScript
-
- elif [ $getProxy == "n" -o $getProxy == "N" ];then
- echo "Install without proxy"
-
- # Calling functions
- createConfigFile
- addKicadPPA
- installDependency
- copyKicadLibrary
- installNghdl
- createDesktopStartScript
-
- if [ $? -ne 0 ];then
- echo -e "\n\n\nFreeEDA ERROR: Unable to install required packages. Please check your internet connection.\n\n"
- exit 0
- fi
-
- echo "-----------------eSim Installed Successfully-----------------"
- echo "Type \"esim\" in Terminal to launch it"
- echo "or double click on \"eSim\" icon placed on Desktop"
-
- else
- echo "Please select the right option"
- exit 0
- fi
-
-
-elif [ $option == "--uninstall" ];then
- echo -n "Are you sure? It will remove eSim completely including KiCad, Ngspice and NGHDL along with their models and libraries (y/n):"
- read getConfirmation
- if [ $getConfirmation == "y" -o $getConfirmation == "Y" ];then
- echo "Removing eSim............................"
- sudo rm -rf $HOME/.esim $HOME/Desktop/esim.desktop /usr/bin/esim /usr/share/applications/esim.desktop
- echo "Removing KiCad..........................."
- sudo apt purge -y kicad
- sudo rm -rf /usr/share/kicad
- sudo rm -rf $HOME/.config/kicad
- rm -f $eSim_Home/library/supportFiles/kicad_config_path.txt
-
- if [[ $(lsb_release -rs) == 20.* ]]; then
- sudo sed -i '/Package: kicad/{:label;N;/Pin-Priority: 501/!blabel};/Pin: version 4.0.7*/d' /etc/apt/preferences.d/preferences
- fi
-
- echo "Removing NGHDL..........................."
- rm -rf library/modelParamXML/Nghdl/*
- cd nghdl/
- if [ $? -eq 0 ];then
- chmod +x install-nghdl.sh
- ./install-nghdl.sh --uninstall
- cd ../
- rm -rf nghdl
- if [ $? -eq 0 ];then
- echo -e "----------------eSim Uninstalled Successfully----------------"
- else
- echo -e "\nError while removing some files/directories in \"nghdl\". Please remove it manually"
- fi
- else
- echo -e "\nCannot find \"nghdl\" directory. Please remove it manually"
- fi
- elif [ $getConfirmation == "n" -o $getConfirmation == "N" ];then
- exit 0
- else
- echo "Please select the right option."
- exit 0
- fi
-
-else
- echo "Please select the proper operation."
- echo "--install"
- echo "--uninstall"
-fi
diff --git a/Debian/readme.md b/Debian/readme.md
deleted file mode 100755
index 8b635e4a..00000000
--- a/Debian/readme.md
+++ /dev/null
@@ -1,146 +0,0 @@
-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.
-