diff --git a/windows/README.txt b/windows/README.txt index a10ad30..969e900 100644 --- a/windows/README.txt +++ b/windows/README.txt @@ -1,27 +1,14 @@ -Requirements: -1)Python 3.4, 32bit -2)PyQt5 for python 3.4, 32bit (it should already include the qt libs); -3)Py2exe -4)Innosetup +Due to py2exe and pyinstaller not working at all, the setup now just installs python +uses pip to install the requirements and then creates some links to start relational. -It is necessary to have the: Microsoft Visual C++ 2010 Redistributable Package. +You will need: - Create an exe file -- Move the file windows/input.py to ../ -- Chech that the version number is correct -- Execute "python input.py py2exe" - -At the end, there should be a directory named "dist" containing the exe file and the needed libs (excluding for the c++ one) -within the dist directory there should be a "platforms" directory with a dll the PyQt5 directory. +1) Innosetup +2) The python installer executable in the windows directory Create the setup with Inno Setup +- Run make or it will just never work - Move windows/ss.iss to ../ -- Download the Microsoft Visual C++ 2010 Redistributable, call it vcredist_x86.exe and save it in the relational main directory - Open ss.iss with Inno Setup, Build and Compile A directory named "Output" will be created, which will contain the installer. - -Notes: -- To create the setup, don't move the "dist" directory or its content. -- Do not delete or move the directory windows/font dejavu -- If the shell is open, it will not work. The windows shell does not support unicode and will generate exceptions when trying to print expressions on it diff --git a/windows/input.py b/windows/input.py deleted file mode 100644 index bcfe96c..0000000 --- a/windows/input.py +++ /dev/null @@ -1,57 +0,0 @@ -# Relational -# Copyright (C) 2008-2020 Salvo "LtWorf" Tomaselli -# -# Relational is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# author Salvo "LtWorf" Tomaselli - -from distutils.core import setup -import py2exe - -#It was complaining about the already installed MSVCP90.dll -#So it is removed from the checks and signals to the user the -#probable need to manually install it. Since to redistribute it -#some dammit certificates are needed. - -includes = ( - "sip", - "PyQt5", - "PyQt5.QtCore", - "PyQt5.QtGui", -) - -datafiles = ( - ( - "platforms", ["C:\\Python34\\Lib\\site-packages\\PyQt5\\plugins" + "\\platforms\\qwindows.dll"] - ), -) - -setup( - data_files=datafiles, - zipfile=None, - options={ - "py2exe": { - "includes": includes, - "dll_excludes": ["MSVCP90.dll"], - } - }, - windows=[ - { - "script": "relational.py", - "icon_resources": [(0, "windows/favicon.ico")], - } - ], - name="Relational", - version="3.0", -) diff --git a/windows/pipscript.bat b/windows/pipscript.bat new file mode 100644 index 0000000..cd613ff --- /dev/null +++ b/windows/pipscript.bat @@ -0,0 +1,4 @@ +# install dependencies using pip +py -m pip install typedload +py -m pip install xtermcolor +py -m pip install PyQt5 diff --git a/windows/ss.iss b/windows/ss.iss index b8d73c4..af7f394 100755 --- a/windows/ss.iss +++ b/windows/ss.iss @@ -1,53 +1,50 @@ -; Script generated by the Inno Setup Script Wizard. -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! - -[Setup] -; NOTE: The value of AppId uniquely identifies this application. -; Do not use the same AppId value in installers for other applications. -; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) -AppId={{6F127615-6AD4-4BD7-8135-2444A335B5CD} -AppName=Relational -AppVerName=Relational ver. 3.0 -AppPublisher=Salvo 'LtWorf' Tomaselli -AppPublisherURL=http://ltworf.github.io/relational/ -AppSupportURL=http://ltworf.github.io/relational/ -AppUpdatesURL=http://ltworf.github.io/relational/ -DefaultDirName={pf}\Relational -DefaultGroupName=Relational -AllowNoIcons=yes -LicenseFile=COPYING -OutputBaseFilename=SetupRelational -SetupIconFile=windows\favicon.ico -Compression=lzma -SolidCompression=yes - -[Languages] -Name: "english"; MessagesFile: "compiler:Default.isl" - -[Tasks] -Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked -Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked - -[Run] -; add the Parameters, WorkingDir and StatusMsg as you wish, just keep here -; the conditional installation Check -Filename: "{tmp}\vcredist_x86.exe"; Parameters: "/passive /norestart"; - -[Files] -Source: "dist\relational_gui.exe"; DestDir: "{app}"; Flags: ignoreversion -Source: "dist\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs -; Source: "windows\font dejavu\*"; DestDir: "{fonts}"; FontInstall: "Dejavu Sans" -Source: "samples\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs -Source: "vcredist_x86.exe"; DestDir: {tmp}; Flags: deleteafterinstall -; NOTE: Don't use "Flags: ignoreversion" on any shared system files - -[Icons] -Name: "{group}\Relational"; Filename: "{app}\relational_gui.exe" -Name: "{group}\{cm:ProgramOnTheWeb,Relational}"; Filename: "http://ltworf.github.io/relational/" -Name: "{group}\{cm:UninstallProgram,Relational}"; Filename: "{uninstallexe}" -Name: "{commondesktop}\Relational"; Filename: "{app}\relational_gui.exe"; Tasks: desktopicon -Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Relational"; Filename: "{app}\relational_gui.exe"; Tasks: quicklaunchicon - -[Run] -Filename: "{app}\relational_gui.exe"; Description: "{cm:LaunchProgram,Relational}"; Flags: nowait postinstall skipifsilent - +[Setup] +AppId={{6F127615-6AD4-4BD7-8135-2444A335B5CD} +AppName=Relational +AppVerName=Relational ver. 3.0 +AppPublisher=Salvo 'LtWorf' Tomaselli +AppPublisherURL=https://ltworf.github.io/relational/ +AppSupportURL=https://ltworf.github.io/relational/ +AppUpdatesURL=https://ltworf.github.io/relational/ +DefaultDirName={pf}\Relational +DefaultGroupName=Relational +AllowNoIcons=yes +LicenseFile=COPYING +OutputBaseFilename=SetupRelational +SetupIconFile=windows\favicon.ico +Compression=lzma +SolidCompression=yes + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked +Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Run] +; add the Parameters, WorkingDir and StatusMsg as you wish, just keep here +; the conditional installation Check +Filename: "{tmp}\python-3.8.5-amd64.exe"; Parameters: "/passive InstallAllUsers=1"; +Filename: "powershell"; Parameters: "-file {tmp}\pipscript.bat" + +[Files] +; NOTE: Don't use "Flags: ignoreversion" on any shared system files +Source: "windows\python-3.8.5-amd64.exe"; DestDir: {tmp}; Flags: deleteafterinstall +Source: "windows\pipscript.bat"; DestDir: {tmp}; Flags: deleteafterinstall + +Source: "relational.py"; DestDir: "{app}"; Flags: ignoreversion +Source: "relational\*"; DestDir: "{app}\relational"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "relational_gui\*"; DestDir: "{app}\relational_gui"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "samples\*"; DestDir: "{app}\samples"; Flags: ignoreversion recursesubdirs createallsubdirs + + +[Icons] +Name: "{group}\Relational"; Filename: "pyw"; Parameters: "relational.py"; WorkingDir: "{app}" +Name: "{group}\{cm:ProgramOnTheWeb,Relational}"; Filename: "https://ltworf.github.io/relational/" +Name: "{group}\{cm:UninstallProgram,Relational}"; Filename: "{uninstallexe}" +Name: "{commondesktop}\Relational"; Tasks: desktopicon; Filename: "pyw"; Parameters: "relational.py"; WorkingDir: "{app}" +Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Relational"; Tasks: quicklaunchicon; Filename: "pyw"; Parameters: "relational.py"; WorkingDir: "{app}" + +[Run] +Description: "{cm:LaunchProgram,Relational}"; Flags: nowait postinstall skipifsilent; Filename: "pyw"; Parameters: "relational.py"; WorkingDir: "{app}"