Thread: PATCH: pgAdmin4 windows installer
Hello Team,
Attached is the patch which will create windows 32 installer for pgAdmin4 (runtime mode) for python 2.7 version.
This installer code has problem with psycopg2(2.5.2 version) for windows
As discussed with Ashesh Vashi, I have changed to point to 2.6.1 version and now the installer is working fine.
So it would now generate windows 32 bit installer using psycopg2 (2.6.1 version)
Kindly please review and let me know if any changes required.
Please also suggest whether we should go with 2.5.2(psycopg2) or with the latest version.
Attachment
Hello Team,
This is regarding pgAdmin4 windows 32 bit installer (runtime mode) using python 2.7
What the patch will create ?
-It would create a folder as pkg/win32
-It would create Make.bat,installer.iss, and Resource folder inside pkg/win32 folder
What Make.bat would generate
-It would create private environment and install all the dependencies(requirements_py2.txt) inside the environment.
-It would then compile the runtime source code using QT(5.5.1) and VC2013
-It would bundle the pgadmin binary file and required dependencies such as QT, python(2.7) using INNO setup tool and generate the windows 32 bit installer (pgadmin4-runtime.exe) in pkg/win32/Release folder.
The pgadmin4-runtime.exe is a single file installer for installing pgAdmin4 runtime mode on windows 32 bit machine.
On Fri, Mar 25, 2016 at 5:10 PM, Paresh More <paresh.more@enterprisedb.com> wrote:
Hello Team,Attached is the patch which will create windows 32 installer for pgAdmin4 (runtime mode) for python 2.7 version.This installer code has problem with psycopg2(2.5.2 version) for windowsAs discussed with Ashesh Vashi, I have changed to point to 2.6.1 version and now the installer is working fine.So it would now generate windows 32 bit installer using psycopg2 (2.6.1 version)Kindly please review and let me know if any changes required.Please also suggest whether we should go with 2.5.2(psycopg2) or with the latest version.
Hi
First round feedback (finally - sorry for the delay!):
- Please move Make.bat to the root directory of the source tree.
- The built installer should be created in dist/ in the root directory of the source tree (as the PIP package is)
- The version number should be extracted from config.py, and used to create the installer filename, i.e. pgadmin4-APP_VERSION.exe, which would currently make "pgadmin4-1.0.0-dev.exe"
- Please add a README.rst file to pkg/win32 that describes the required packages to setup a build environment, and (where non-obvious, e.g. setting up the compiler for PIP) including instructions on how to setup everything.
- The user should never need to edit Make.bat, so any paths that might change should come from the environment (with instructions telling the user what to set where required). e.g. use vars like PYTHON_VERSION, PYTHON_PATH, QTDIR. These should override any hard-coded defaults in the script. Of course, where possible we should use variables standard to, or set by the other products.
- Any script errors should cause an exit. For example, my QT is a different version than you used, but the build script just ignored the fact that qmake couldn't be found and built an installer anyway.
- Side-by-side installations of major versions of pgAdmin should be allowed, so an installation directory of "C:\Program Files (x86)\pgAdmin 4\" should actually install into C:\Program Files (x86)\pgAdmin 4\<major>.<minor>, e.g. "C:\Program Files (x86)\pgAdmin 4\1.0\"
- Revision version updates should update the installed version, not install side-by-side. Care should be taken to ensure the Add/Remove Programs entries support both side-by-side installations and upgrades (e.g. 1.0.0 -> 1.0.1)
- The first screen of the installer shows the version of pgAdmin as 1.0. It should be APP_VERSION from config.py.
- To aid with error handling, the script should check to ensure it can find required executables (e.g. qmake.exe, ISCC.exe) as a pre-flight check.
- We need a simple way to create a 64bit build.
- I'm not sure we should try to use any part of VC++ (NMAKE, VCVARS etc.). The script failed to build the runtime for me - I think because VCVARS was conflicting with QMAKE settings. I was getting errors like:
Generating Code...
link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:release\pgAdmin4.exe.embed.manifest /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nm196C.tmp
qtmain.lib(qtmain_win.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in pgAdmin4.obj
qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl std::_Xbad_alloc(void)" (__imp_?_Xbad_alloc@std@@YAXXZ) referenced in function "char * __cdecl std::_Allocate<char>(unsigned int,char *)" (??$_Allocate@D@std@@YAPADIPAD@Z)
qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Syserror_map(int)" (__imp_?_Syserror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::error_condition __thiscall std::_System_error_category::default_error_condition(int)const " (?default_error_condition@_System_error_category@std@@UBE?AVerror_condition@2@H@Z)
qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::_System_error_category::message(int)const " (?message@_System_error_category@std@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@H@Z)
release\pgAdmin4.exe : fatal error LNK1120: 3 unresolved externals
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\link.EXE"' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'
Stop.
Aborting build!
Thanks!
On Fri, Mar 25, 2016 at 11:40 AM, Paresh More <paresh.more@enterprisedb.com> wrote:
Hello Team,Attached is the patch which will create windows 32 installer for pgAdmin4 (runtime mode) for python 2.7 version.This installer code has problem with psycopg2(2.5.2 version) for windowsAs discussed with Ashesh Vashi, I have changed to point to 2.6.1 version and now the installer is working fine.So it would now generate windows 32 bit installer using psycopg2 (2.6.1 version)Kindly please review and let me know if any changes required.Please also suggest whether we should go with 2.5.2(psycopg2) or with the latest version.
--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Hello Dave,
I have made changes according which you mentioned.
Binary is located @ location
Patch is attached in the Email.
- Please move Make.bat to the root directory of the source tree.
DONE - Make.bat is moved to root directory
- The built installer should be created in dist/ in the root directory of the source tree (as the PIP package is)
DONE - dist would be created in the root directory of the source tree.
- The version number should be extracted from config.py, and used to create the installer filename, i.e. pgadmin4-APP_VERSION.exe, which would currently make "pgadmin4-1.0.0-dev.exe"
DONE - Now it reads from config.py and accordingly create installer filename.
- Please add a README.rst file to pkg/win32 that describes the required packages to setup a build environment, and (where non-obvious, e.g. setting up the compiler for PIP) including instructions on how to setup everything.
DONE
- The user should never need to edit Make.bat, so any paths that might change should come from the environment (with instructions telling the user what to set where required). e.g. use vars like PYTHON_VERSION, PYTHON_PATH, QTDIR. These should override any hard-coded defaults in the script. Of course, where possible we should use variables standard to, or set by the other products.
DONE - It would check environment variables and override if it is set, else default values would be used and a check is put which would ensure all the prerequisite requirement is installed or abort.
- Any script errors should cause an exit. For example, my QT is a different version than you used, but the build script just ignored the fact that qmake couldn't be found and built an installer anyway.
DONE - Pre check is put which would ensure prerequisite requirement is installed
- Side-by-side installations of major versions of pgAdmin should be allowed, so an installation directory of "C:\Program Files (x86)\pgAdmin 4\" should actually install into C:\Program Files (x86)\pgAdmin 4\<major>.<minor>, e.g. "C:\Program Files (x86)\pgAdmin 4\1.0\"
DONE-Side-by-side installation depending on Major and minor number is handled.
Ex: All 1.0.0, 1.0.1,1.0.2,etc..... would go in C:\Program Files (x86)\pgAdmin 4\1.0
All 1.1.0, 1.1.1,1.1.2,etc..... would go in C:\Program Files (x86)\pgAdmin 4\1.1
and so on
- Revision version updates should update the installed version, not install side-by-side. Care should be taken to ensure the Add/Remove Programs entries support both side-by-side installations and upgrades (e.g. 1.0.0 -> 1.0.1)
DONE - Revision version update would update the installed version
A extra check is also put which insure older version would not be allowed to install if higher version is already installed.
- The first screen of the installer shows the version of pgAdmin as 1.0. It should be APP_VERSION from config.py.
DONE- Screen shows APP_Version from config.py
- To aid with error handling, the script should check to ensure it can find required executables (e.g. qmake.exe, ISCC.exe) as a pre-flight check.
DONE- Pre check is set, which will ensure all prerequisite is already set and installed.
- We need a simple way to create a 64bit build.
DONE
On Fri, Apr 8, 2016 at 2:17 AM, Dave Page <dpage@pgadmin.org> wrote:
HiFirst round feedback (finally - sorry for the delay!):- Please move Make.bat to the root directory of the source tree.- The built installer should be created in dist/ in the root directory of the source tree (as the PIP package is)- The version number should be extracted from config.py, and used to create the installer filename, i.e. pgadmin4-APP_VERSION.exe, which would currently make "pgadmin4-1.0.0-dev.exe"- Please add a README.rst file to pkg/win32 that describes the required packages to setup a build environment, and (where non-obvious, e.g. setting up the compiler for PIP) including instructions on how to setup everything.- The user should never need to edit Make.bat, so any paths that might change should come from the environment (with instructions telling the user what to set where required). e.g. use vars like PYTHON_VERSION, PYTHON_PATH, QTDIR. These should override any hard-coded defaults in the script. Of course, where possible we should use variables standard to, or set by the other products.- Any script errors should cause an exit. For example, my QT is a different version than you used, but the build script just ignored the fact that qmake couldn't be found and built an installer anyway.- Side-by-side installations of major versions of pgAdmin should be allowed, so an installation directory of "C:\Program Files (x86)\pgAdmin 4\" should actually install into C:\Program Files (x86)\pgAdmin 4\<major>.<minor>, e.g. "C:\Program Files (x86)\pgAdmin 4\1.0\"- Revision version updates should update the installed version, not install side-by-side. Care should be taken to ensure the Add/Remove Programs entries support both side-by-side installations and upgrades (e.g. 1.0.0 -> 1.0.1)- The first screen of the installer shows the version of pgAdmin as 1.0. It should be APP_VERSION from config.py.- To aid with error handling, the script should check to ensure it can find required executables (e.g. qmake.exe, ISCC.exe) as a pre-flight check.- We need a simple way to create a 64bit build.- I'm not sure we should try to use any part of VC++ (NMAKE, VCVARS etc.). The script failed to build the runtime for me - I think because VCVARS was conflicting with QMAKE settings. I was getting errors like:Generating Code...link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:release\pgAdmin4.exe.embed.manifest /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nm196C.tmpqtmain.lib(qtmain_win.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in pgAdmin4.objqtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl std::_Xbad_alloc(void)" (__imp_?_Xbad_alloc@std@@YAXXZ) referenced in function "char * __cdecl std::_Allocate<char>(unsigned int,char *)" (??$_Allocate@D@std@@YAPADIPAD@Z)qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Syserror_map(int)" (__imp_?_Syserror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::error_condition __thiscall std::_System_error_category::default_error_condition(int)const " (?default_error_condition@_System_error_category@std@@UBE?AVerror_condition@2@H@Z)qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::_System_error_category::message(int)const " (?message@_System_error_category@std@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@H@Z)release\pgAdmin4.exe : fatal error LNK1120: 3 unresolved externalsNMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\link.EXE"' : return code '0x460'Stop.NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'Stop.Aborting build!Thanks!On Fri, Mar 25, 2016 at 11:40 AM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Team,Attached is the patch which will create windows 32 installer for pgAdmin4 (runtime mode) for python 2.7 version.This installer code has problem with psycopg2(2.5.2 version) for windowsAs discussed with Ashesh Vashi, I have changed to point to 2.6.1 version and now the installer is working fine.So it would now generate windows 32 bit installer using psycopg2 (2.6.1 version)Kindly please review and let me know if any changes required.Please also suggest whether we should go with 2.5.2(psycopg2) or with the latest version.
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers--Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment
Hi
--
On Fri, Apr 15, 2016 at 4:31 PM, Paresh More <paresh.more@enterprisedb.com> wrote:
Hello Dave,I have made changes according which you mentioned.Binary is located @ locationPatch is attached in the Email.- Please move Make.bat to the root directory of the source tree.DONE - Make.bat is moved to root directory
OK.
- The built installer should be created in dist/ in the root directory of the source tree (as the PIP package is)DONE - dist would be created in the root directory of the source tree.
OK
- The version number should be extracted from config.py, and used to create the installer filename, i.e. pgadmin4-APP_VERSION.exe, which would currently make "pgadmin4-1.0.0-dev.exe"DONE - Now it reads from config.py and accordingly create installer filename.
OK
- Please add a README.rst file to pkg/win32 that describes the required packages to setup a build environment, and (where non-obvious, e.g. setting up the compiler for PIP) including instructions on how to setup everything.DONE
I've edited (and renamed for consistency) this file. Please find the update attached.
I notice that it does not mention anything about setting up a compiler for PIP etc. Is that needed?
- The user should never need to edit Make.bat, so any paths that might change should come from the environment (with instructions telling the user what to set where required). e.g. use vars like PYTHON_VERSION, PYTHON_PATH, QTDIR. These should override any hard-coded defaults in the script. Of course, where possible we should use variables standard to, or set by the other products.DONE - It would check environment variables and override if it is set, else default values would be used and a check is put which would ensure all the prerequisite requirement is installed or abort.
This doesn't appear to work at all. I set QTDIR in my environment, but the script complains that the default paths don't exist. I removed the default for QTDIR, and then get output like the following:
C:\Users\dpage\Documents\pgadmin4>make
'Files' is not recognized as an internal or external command,
operable program or batch file.
'Files' is not recognized as an internal or external command,
operable program or batch file.
'Files' is not recognized as an internal or external command,
operable program or batch file.
'Files' is not recognized as an internal or external command,
operable program or batch file.
C:\Qt\5.5\msvc2013_64 does not exist.
"C:\Qt\5.5\msvc2013_64\bin\qmake.exe"s does not exist.
Please Install QT SDK and set the QTDIR enviroment Variable.
Clearly there are quoting issues here.
- Any script errors should cause an exit. For example, my QT is a different version than you used, but the build script just ignored the fact that qmake couldn't be found and built an installer anyway.DONE - Pre check is put which would ensure prerequisite requirement is installed
OK
- Side-by-side installations of major versions of pgAdmin should be allowed, so an installation directory of "C:\Program Files (x86)\pgAdmin 4\" should actually install into C:\Program Files (x86)\pgAdmin 4\<major>.<minor>, e.g. "C:\Program Files (x86)\pgAdmin 4\1.0\"DONE-Side-by-side installation depending on Major and minor number is handled.Ex: All 1.0.0, 1.0.1,1.0.2,etc..... would go in C:\Program Files (x86)\pgAdmin 4\1.0All 1.1.0, 1.1.1,1.1.2,etc..... would go in C:\Program Files (x86)\pgAdmin 4\1.1and so on
OK.
- Revision version updates should update the installed version, not install side-by-side. Care should be taken to ensure the Add/Remove Programs entries support both side-by-side installations and upgrades (e.g. 1.0.0 -> 1.0.1)DONE - Revision version update would update the installed versionA extra check is also put which insure older version would not be allowed to install if higher version is already installed.
OK.
- The first screen of the installer shows the version of pgAdmin as 1.0. It should be APP_VERSION from config.py.DONE- Screen shows APP_Version from config.py
OK.
- To aid with error handling, the script should check to ensure it can find required executables (e.g. qmake.exe, ISCC.exe) as a pre-flight check.DONE- Pre check is set, which will ensure all prerequisite is already set and installed.
OK. Please adjust the error reporting, e.g.
:setInnoDetails
echo %INNOTOOL% does not exist
echo Please Install Innotool and set the INNOTOOL enviroment variable.
goto EXIT
:setVCDetails
echo %VCDIR% does not exist.
echo %VCVAR% does not exist.
echo %VCNMAKE% does not exist.
echo Please Install Microsoft Visual Studio and set the VCDIR environment variable.
goto EXIT
:setPythonDetails
echo %PYTHON_HOME% does not exist.
echo %PYTHON_VERSION% not set.
echo %PYTHON_DLL% does not exist.
echo Please Install Python and set the PYTHON_HOME enviroment Variable.
goto EXIT
:setQtDetails
echo %QTDIR% does not exist.
echo %QMAKE% does not exist.
echo Please Install the QT SDK and set the QTDIR enviroment variable.
goto EXIT
- We need a simple way to create a 64bit build.DONE
How is that done? It's not mentioned in the README.
On Fri, Apr 8, 2016 at 2:17 AM, Dave Page <dpage@pgadmin.org> wrote:HiFirst round feedback (finally - sorry for the delay!):- Please move Make.bat to the root directory of the source tree.- The built installer should be created in dist/ in the root directory of the source tree (as the PIP package is)- The version number should be extracted from config.py, and used to create the installer filename, i.e. pgadmin4-APP_VERSION.exe, which would currently make "pgadmin4-1.0.0-dev.exe"- Please add a README.rst file to pkg/win32 that describes the required packages to setup a build environment, and (where non-obvious, e.g. setting up the compiler for PIP) including instructions on how to setup everything.- The user should never need to edit Make.bat, so any paths that might change should come from the environment (with instructions telling the user what to set where required). e.g. use vars like PYTHON_VERSION, PYTHON_PATH, QTDIR. These should override any hard-coded defaults in the script. Of course, where possible we should use variables standard to, or set by the other products.- Any script errors should cause an exit. For example, my QT is a different version than you used, but the build script just ignored the fact that qmake couldn't be found and built an installer anyway.- Side-by-side installations of major versions of pgAdmin should be allowed, so an installation directory of "C:\Program Files (x86)\pgAdmin 4\" should actually install into C:\Program Files (x86)\pgAdmin 4\<major>.<minor>, e.g. "C:\Program Files (x86)\pgAdmin 4\1.0\"- Revision version updates should update the installed version, not install side-by-side. Care should be taken to ensure the Add/Remove Programs entries support both side-by-side installations and upgrades (e.g. 1.0.0 -> 1.0.1)- The first screen of the installer shows the version of pgAdmin as 1.0. It should be APP_VERSION from config.py.- To aid with error handling, the script should check to ensure it can find required executables (e.g. qmake.exe, ISCC.exe) as a pre-flight check.- We need a simple way to create a 64bit build.- I'm not sure we should try to use any part of VC++ (NMAKE, VCVARS etc.). The script failed to build the runtime for me - I think because VCVARS was conflicting with QMAKE settings. I was getting errors like:Generating Code...link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:release\pgAdmin4.exe.embed.manifest /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nm196C.tmpqtmain.lib(qtmain_win.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in pgAdmin4.objqtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl std::_Xbad_alloc(void)" (__imp_?_Xbad_alloc@std@@YAXXZ) referenced in function "char * __cdecl std::_Allocate<char>(unsigned int,char *)" (??$_Allocate@D@std@@YAPADIPAD@Z)qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Syserror_map(int)" (__imp_?_Syserror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::error_condition __thiscall std::_System_error_category::default_error_condition(int)const " (?default_error_condition@_System_error_category@std@@UBE?AVerror_condition@2@H@Z)qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::_System_error_category::message(int)const " (?message@_System_error_category@std@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@H@Z)release\pgAdmin4.exe : fatal error LNK1120: 3 unresolved externalsNMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\link.EXE"' : return code '0x460'Stop.NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'Stop.Aborting build!Thanks!On Fri, Mar 25, 2016 at 11:40 AM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Team,Attached is the patch which will create windows 32 installer for pgAdmin4 (runtime mode) for python 2.7 version.This installer code has problem with psycopg2(2.5.2 version) for windowsAs discussed with Ashesh Vashi, I have changed to point to 2.6.1 version and now the installer is working fine.So it would now generate windows 32 bit installer using psycopg2 (2.6.1 version)Kindly please review and let me know if any changes required.Please also suggest whether we should go with 2.5.2(psycopg2) or with the latest version.
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers--Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment
Hello Dave.
Attached are two patch for pgAdmin4-windows
pgAdmin4_createDB.patch
- patch for pgAdmin4.py to autocreate database configuration if does not exist.
- Now pgadmin.db would be not be bundled with installer, it would be created if pgAdmin4.py is executed for the first time.
pgAdmin4_windows.patch
- Environment variables once set will over ride the existing script variables.
- Issue related to path with quotes are removed.
- New Readme.txt is added.
- Modified Error reporting.
- Python check was missing related to which requirement file it should pick for creating private environment based on python version is also fixed.
Windows pgAdmin4 Installer Download Link is @ location
https://uploads.enterprisedb.com/download.php?file=cc348a6d233400fa80fb2a4fd53336a3
https://uploads.enterprisedb.com/download.php?file=cc348a6d233400fa80fb2a4fd53336a3
On Mon, May 9, 2016 at 6:13 PM, Dave Page <dpage@pgadmin.org> wrote:
HiOn Fri, Apr 15, 2016 at 4:31 PM, Paresh More <paresh.more@enterprisedb.com> wrote:Hello Dave,I have made changes according which you mentioned.Binary is located @ locationPatch is attached in the Email.- Please move Make.bat to the root directory of the source tree.DONE - Make.bat is moved to root directoryOK.- The built installer should be created in dist/ in the root directory of the source tree (as the PIP package is)DONE - dist would be created in the root directory of the source tree.OK- The version number should be extracted from config.py, and used to create the installer filename, i.e. pgadmin4-APP_VERSION.exe, which would currently make "pgadmin4-1.0.0-dev.exe"DONE - Now it reads from config.py and accordingly create installer filename.OK- Please add a README.rst file to pkg/win32 that describes the required packages to setup a build environment, and (where non-obvious, e.g. setting up the compiler for PIP) including instructions on how to setup everything.DONEI've edited (and renamed for consistency) this file. Please find the update attached.I notice that it does not mention anything about setting up a compiler for PIP etc. Is that needed?- The user should never need to edit Make.bat, so any paths that might change should come from the environment (with instructions telling the user what to set where required). e.g. use vars like PYTHON_VERSION, PYTHON_PATH, QTDIR. These should override any hard-coded defaults in the script. Of course, where possible we should use variables standard to, or set by the other products.DONE - It would check environment variables and override if it is set, else default values would be used and a check is put which would ensure all the prerequisite requirement is installed or abort.This doesn't appear to work at all. I set QTDIR in my environment, but the script complains that the default paths don't exist. I removed the default for QTDIR, and then get output like the following:C:\Users\dpage\Documents\pgadmin4>make'Files' is not recognized as an internal or external command,operable program or batch file.'Files' is not recognized as an internal or external command,operable program or batch file.'Files' is not recognized as an internal or external command,operable program or batch file.'Files' is not recognized as an internal or external command,operable program or batch file.C:\Qt\5.5\msvc2013_64 does not exist."C:\Qt\5.5\msvc2013_64\bin\qmake.exe"s does not exist.Please Install QT SDK and set the QTDIR enviroment Variable.Clearly there are quoting issues here.- Any script errors should cause an exit. For example, my QT is a different version than you used, but the build script just ignored the fact that qmake couldn't be found and built an installer anyway.DONE - Pre check is put which would ensure prerequisite requirement is installedOK- Side-by-side installations of major versions of pgAdmin should be allowed, so an installation directory of "C:\Program Files (x86)\pgAdmin 4\" should actually install into C:\Program Files (x86)\pgAdmin 4\<major>.<minor>, e.g. "C:\Program Files (x86)\pgAdmin 4\1.0\"DONE-Side-by-side installation depending on Major and minor number is handled.Ex: All 1.0.0, 1.0.1,1.0.2,etc..... would go in C:\Program Files (x86)\pgAdmin 4\1.0All 1.1.0, 1.1.1,1.1.2,etc..... would go in C:\Program Files (x86)\pgAdmin 4\1.1and so onOK.- Revision version updates should update the installed version, not install side-by-side. Care should be taken to ensure the Add/Remove Programs entries support both side-by-side installations and upgrades (e.g. 1.0.0 -> 1.0.1)DONE - Revision version update would update the installed versionA extra check is also put which insure older version would not be allowed to install if higher version is already installed.OK.- The first screen of the installer shows the version of pgAdmin as 1.0. It should be APP_VERSION from config.py.DONE- Screen shows APP_Version from config.pyOK.- To aid with error handling, the script should check to ensure it can find required executables (e.g. qmake.exe, ISCC.exe) as a pre-flight check.DONE- Pre check is set, which will ensure all prerequisite is already set and installed.OK. Please adjust the error reporting, e.g.:setInnoDetailsecho %INNOTOOL% does not existecho Please Install Innotool and set the INNOTOOL enviroment variable.goto EXIT:setVCDetailsecho %VCDIR% does not exist.echo %VCVAR% does not exist.echo %VCNMAKE% does not exist.echo Please Install Microsoft Visual Studio and set the VCDIR environment variable.goto EXIT:setPythonDetailsecho %PYTHON_HOME% does not exist.echo %PYTHON_VERSION% not set.echo %PYTHON_DLL% does not exist.echo Please Install Python and set the PYTHON_HOME enviroment Variable.goto EXIT:setQtDetailsecho %QTDIR% does not exist.echo %QMAKE% does not exist.echo Please Install the QT SDK and set the QTDIR enviroment variable.goto EXIT- We need a simple way to create a 64bit build.DONEHow is that done? It's not mentioned in the README.On Fri, Apr 8, 2016 at 2:17 AM, Dave Page <dpage@pgadmin.org> wrote:HiFirst round feedback (finally - sorry for the delay!):- Please move Make.bat to the root directory of the source tree.- The built installer should be created in dist/ in the root directory of the source tree (as the PIP package is)- The version number should be extracted from config.py, and used to create the installer filename, i.e. pgadmin4-APP_VERSION.exe, which would currently make "pgadmin4-1.0.0-dev.exe"- Please add a README.rst file to pkg/win32 that describes the required packages to setup a build environment, and (where non-obvious, e.g. setting up the compiler for PIP) including instructions on how to setup everything.- The user should never need to edit Make.bat, so any paths that might change should come from the environment (with instructions telling the user what to set where required). e.g. use vars like PYTHON_VERSION, PYTHON_PATH, QTDIR. These should override any hard-coded defaults in the script. Of course, where possible we should use variables standard to, or set by the other products.- Any script errors should cause an exit. For example, my QT is a different version than you used, but the build script just ignored the fact that qmake couldn't be found and built an installer anyway.- Side-by-side installations of major versions of pgAdmin should be allowed, so an installation directory of "C:\Program Files (x86)\pgAdmin 4\" should actually install into C:\Program Files (x86)\pgAdmin 4\<major>.<minor>, e.g. "C:\Program Files (x86)\pgAdmin 4\1.0\"- Revision version updates should update the installed version, not install side-by-side. Care should be taken to ensure the Add/Remove Programs entries support both side-by-side installations and upgrades (e.g. 1.0.0 -> 1.0.1)- The first screen of the installer shows the version of pgAdmin as 1.0. It should be APP_VERSION from config.py.- To aid with error handling, the script should check to ensure it can find required executables (e.g. qmake.exe, ISCC.exe) as a pre-flight check.- We need a simple way to create a 64bit build.- I'm not sure we should try to use any part of VC++ (NMAKE, VCVARS etc.). The script failed to build the runtime for me - I think because VCVARS was conflicting with QMAKE settings. I was getting errors like:Generating Code...link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:release\pgAdmin4.exe.embed.manifest /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nm196C.tmpqtmain.lib(qtmain_win.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in pgAdmin4.objqtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl std::_Xbad_alloc(void)" (__imp_?_Xbad_alloc@std@@YAXXZ) referenced in function "char * __cdecl std::_Allocate<char>(unsigned int,char *)" (??$_Allocate@D@std@@YAPADIPAD@Z)qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Syserror_map(int)" (__imp_?_Syserror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::error_condition __thiscall std::_System_error_category::default_error_condition(int)const " (?default_error_condition@_System_error_category@std@@UBE?AVerror_condition@2@H@Z)qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::_System_error_category::message(int)const " (?message@_System_error_category@std@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@H@Z)release\pgAdmin4.exe : fatal error LNK1120: 3 unresolved externalsNMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\link.EXE"' : return code '0x460'Stop.NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'Stop.Aborting build!Thanks!On Fri, Mar 25, 2016 at 11:40 AM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Team,Attached is the patch which will create windows 32 installer for pgAdmin4 (runtime mode) for python 2.7 version.This installer code has problem with psycopg2(2.5.2 version) for windowsAs discussed with Ashesh Vashi, I have changed to point to 2.6.1 version and now the installer is working fine.So it would now generate windows 32 bit installer using psycopg2 (2.6.1 version)Kindly please review and let me know if any changes required.Please also suggest whether we should go with 2.5.2(psycopg2) or with the latest version.
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers--Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company----Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment
Hi
On Fri, May 20, 2016 at 9:33 AM, Paresh More <paresh.more@enterprisedb.com> wrote:
-- Hello Dave.Attached are two patch for pgAdmin4-windowspgAdmin4_createDB.patch- patch for pgAdmin4.py to autocreate database configuration if does not exist.- Now pgadmin.db would be not be bundled with installer, it would be created if pgAdmin4.py is executed for the first time.
This is committed.
pgAdmin4_windows.patch- Environment variables once set will over ride the existing script variables.- Issue related to path with quotes are removed.- New Readme.txt is added.- Modified Error reporting.- Python check was missing related to which requirement file it should pick for creating private environment based on python version is also fixed.
Attached is an update to this patch, which modifies the following:
- Avoids trashing a pre-existing config_local.py, and creates a very simple one in the staging directory.
- Various tidy-ups of Make.bat.
- Change the default path to %ProgramFiles%\pgAdmin 4\v<major> (added the v, as <major> on it's own looks weird)
Please update further to address the following issues. I need this completed ASAP, thanks:
- Make.bat should take a "clean" parameter, to cleanup all output it creates in normal mode.
- The package name in the installer should be set from config.py as the version is.
- I see the following error:
error: [Error 183] Cannot create a file when that file already exists: 'build\\bdist.win32\\wheel\\importlib-1.0.3.data\\..'
----------------------------------------
Failed building wheel for importlib
- And the following error:
C:\Users\dpage\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\python27\Libs /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\libs /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\PCbuild /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\PC\VS9.0 /LIBPATH:C:/PROGRA~1/PG/pg95/lib ws2_32.lib advapi32.lib secur32.lib libpq.lib shfolder.lib build\temp.win32-2.7\Release\psycopg\psycopgmodule.obj build\temp.win32-2.7\Release\psycopg\green.obj build\temp.win32-2.7\Release\psycopg\pqpath.obj build\temp.win32-2.7\Release\psycopg\utils.obj build\temp.win32-2.7\Release\psycopg\bytes_format.obj build\temp.win32-2.7\Release\psycopg\connection_int.obj build\temp.win32-2.7\Release\psycopg\connection_type.obj build\temp.win32-2.7\Release\psycopg\cursor_int.obj build\temp.win32-2.7\Release\psycopg\cursor_type.obj build\temp.win32-2.7\Release\psycopg\diagnostics_type.obj build\temp.win32-2.7\Release\psycopg\error_type.obj build\temp.win32-2.7\Release\psycopg\lobject_int.obj build\temp.win32-2.7\Release\psycopg\lobject_type.obj build\temp.win32-2.7\Release\psycopg\notify_type.obj build\temp.win32-2.7\Release\psycopg\xid_type.obj build\temp.win32-2.7\Release\psycopg\adapter_asis.obj build\temp.win32-2.7\Release\psycopg\adapter_binary.obj build\temp.win32-2.7\Release\psycopg\adapter_datetime.obj build\temp.win32-2.7\Release\psycopg\adapter_list.obj build\temp.win32-2.7\Release\psycopg\adapter_pboolean.obj build\temp.win32-2.7\Release\psycopg\adapter_pdecimal.obj build\temp.win32-2.7\Release\psycopg\adapter_pint.obj build\temp.win32-2.7\Release\psycopg\adapter_pfloat.obj build\temp.win32-2.7\Release\psycopg\adapter_qstring.obj build\temp.win32-2.7\Release\psycopg\microprotocols.obj build\temp.win32-2.7\Release\psycopg\microprotocols_proto.obj build\temp.win32-2.7\Release\psycopg\typecast.obj /OUT:build\lib.win32-2.7\psycopg2\_psycopg.pyd /IMPLIB:build\temp.win32-2.7\Release\psycopg\_psycopg.lib /MANIFESTFILE:build\temp.win32-2.7\Release\psycopg\_psycopg.pyd.manifest
LINK : fatal error LNK1181: cannot open input file 'libpq.lib'
error: command 'C:\\Users\\dpage\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\link.exe' failed with exit status 1181
----------------------------------------
Failed building wheel for psycopg2
%PGDIR% is set to: C:/Program Files (x86)/PostgreSQL/9.5, but note that /LIBPATH is including "C:/PROGRA~1/PG/pg95/lib".
- As far as I can see, the Helpfiles are not built or bundled (talk to Sandeep about this)
- No Start Menu icon is created.
- Why is 3rd_party_licences.txt included? We don't need that.
- pkg/win32/installer.iss should be added to a .gitignore file.
- SplashScreen.bmp doesn't seem to be used (though it is referenced from the installer config file.
- Running the app fails with the following (I suspect because of the psycopg2 issue above):
---------------------------
Setup
---------------------------
Unable to execute file:
C:\Program Files (x86)\pgAdmin 4\v1\runtime\pgAdmin4.exe
CreateProcess failed; code 2.
The system cannot find the file specified.
---------------------------
OK
---------------------------
The only file in that directory is python27.dll. This is probably caused by this:
fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
- The Add/Remove Programs entry text should be: "pgAdmin 4 v1", thus allowing v1.1 to be a bug-fix release, and 2.0 to be the next major version.
- Any pre-existing pgadmin4.db is being shipped.
- Any pre-existing *.pyc files are being shipped.
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Hello Dave,
Make.bat usage is change to
Make.bat x86 // It would generated 32 bit installer
Make.bat adm64 // would generated 64 bit installer
Make.bat clean // Will cleanup all output it creates in normal mode
Now Make.bat would generated 32/64 installers as per selected.
- Avoids trashing a pre-existing config_local.py, and creates a very simple one in the staging directory.
DONE
- Various tidy-ups of Make.bat.
Tried to clean up code and added some information to the scripts
- Change the default path to %ProgramFiles%\pgAdmin 4\v<major> (added the v, as <major> on it's own looks weird)
DONE - Based on 32 bit or 64 bit it would install accordingly
- Make.bat should take a "clean" parameter, to cleanup all output it creates in normal mode.
DONE
- The package name in the installer should be set from config.py as the version is.
DONE
psycopg2 issue is resolved.
- As far as I can see, the Helpfiles are not built or bundled (talk to Sandeep about this)
DONE - Helpfiles are added to installer
- No Start Menu icon is created.
DONE
- Why is 3rd_party_licences.txt included? We don't need that.
Removed it is not required
- pkg/win32/installer.iss should be added to a .gitignore file.
DONE
- SplashScreen.bmp doesn't seem to be used (though it is referenced from the installer config file.
Splashscreen would be now displayed during installation
- Based on 32/64 python27.dll would be shipped
- The Add/Remove Programs entry text should be: "pgAdmin 4 v1", thus allowing v1.1 to be a bug-fix release, and 2.0 to be the next major version.
DONE
- Any pre-existing pgadmin4.db is being shipped.
DONE
- Any pre-existing *.pyc files are being shipped.
DONE
I have tested on 32 bit machine only and its working fine, for 64 bit all changes are in place, Make.bat amd64 would generate the desired installers.
Attached is the updated Patch.
On Thu, May 26, 2016 at 7:13 PM, Dave Page <dpage@pgadmin.org> wrote:
HiOn Fri, May 20, 2016 at 9:33 AM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Dave.Attached are two patch for pgAdmin4-windowspgAdmin4_createDB.patch- patch for pgAdmin4.py to autocreate database configuration if does not exist.- Now pgadmin.db would be not be bundled with installer, it would be created if pgAdmin4.py is executed for the first time.This is committed.pgAdmin4_windows.patch- Environment variables once set will over ride the existing script variables.- Issue related to path with quotes are removed.- New Readme.txt is added.- Modified Error reporting.- Python check was missing related to which requirement file it should pick for creating private environment based on python version is also fixed.Attached is an update to this patch, which modifies the following:- Avoids trashing a pre-existing config_local.py, and creates a very simple one in the staging directory.- Various tidy-ups of Make.bat.- Change the default path to %ProgramFiles%\pgAdmin 4\v<major> (added the v, as <major> on it's own looks weird)Please update further to address the following issues. I need this completed ASAP, thanks:- Make.bat should take a "clean" parameter, to cleanup all output it creates in normal mode.- The package name in the installer should be set from config.py as the version is.- I see the following error:error: [Error 183] Cannot create a file when that file already exists: 'build\\bdist.win32\\wheel\\importlib-1.0.3.data\\..'----------------------------------------Failed building wheel for importlib- And the following error:C:\Users\dpage\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\python27\Libs /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\libs /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\PCbuild /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\PC\VS9.0 /LIBPATH:C:/PROGRA~1/PG/pg95/lib ws2_32.lib advapi32.lib secur32.lib libpq.lib shfolder.lib build\temp.win32-2.7\Release\psycopg\psycopgmodule.obj build\temp.win32-2.7\Release\psycopg\green.obj build\temp.win32-2.7\Release\psycopg\pqpath.obj build\temp.win32-2.7\Release\psycopg\utils.obj build\temp.win32-2.7\Release\psycopg\bytes_format.obj build\temp.win32-2.7\Release\psycopg\connection_int.obj build\temp.win32-2.7\Release\psycopg\connection_type.obj build\temp.win32-2.7\Release\psycopg\cursor_int.obj build\temp.win32-2.7\Release\psycopg\cursor_type.obj build\temp.win32-2.7\Release\psycopg\diagnostics_type.obj build\temp.win32-2.7\Release\psycopg\error_type.obj build\temp.win32-2.7\Release\psycopg\lobject_int.obj build\temp.win32-2.7\Release\psycopg\lobject_type.obj build\temp.win32-2.7\Release\psycopg\notify_type.obj build\temp.win32-2.7\Release\psycopg\xid_type.obj build\temp.win32-2.7\Release\psycopg\adapter_asis.obj build\temp.win32-2.7\Release\psycopg\adapter_binary.obj build\temp.win32-2.7\Release\psycopg\adapter_datetime.obj build\temp.win32-2.7\Release\psycopg\adapter_list.obj build\temp.win32-2.7\Release\psycopg\adapter_pboolean.obj build\temp.win32-2.7\Release\psycopg\adapter_pdecimal.obj build\temp.win32-2.7\Release\psycopg\adapter_pint.obj build\temp.win32-2.7\Release\psycopg\adapter_pfloat.obj build\temp.win32-2.7\Release\psycopg\adapter_qstring.obj build\temp.win32-2.7\Release\psycopg\microprotocols.obj build\temp.win32-2.7\Release\psycopg\microprotocols_proto.obj build\temp.win32-2.7\Release\psycopg\typecast.obj /OUT:build\lib.win32-2.7\psycopg2\_psycopg.pyd /IMPLIB:build\temp.win32-2.7\Release\psycopg\_psycopg.lib /MANIFESTFILE:build\temp.win32-2.7\Release\psycopg\_psycopg.pyd.manifestLINK : fatal error LNK1181: cannot open input file 'libpq.lib'error: command 'C:\\Users\\dpage\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\link.exe' failed with exit status 1181----------------------------------------Failed building wheel for psycopg2%PGDIR% is set to: C:/Program Files (x86)/PostgreSQL/9.5, but note that /LIBPATH is including "C:/PROGRA~1/PG/pg95/lib".- As far as I can see, the Helpfiles are not built or bundled (talk to Sandeep about this)- No Start Menu icon is created.- Why is 3rd_party_licences.txt included? We don't need that.- pkg/win32/installer.iss should be added to a .gitignore file.- SplashScreen.bmp doesn't seem to be used (though it is referenced from the installer config file.- Running the app fails with the following (I suspect because of the psycopg2 issue above):---------------------------Setup---------------------------Unable to execute file:C:\Program Files (x86)\pgAdmin 4\v1\runtime\pgAdmin4.exeCreateProcess failed; code 2.The system cannot find the file specified.---------------------------OK---------------------------The only file in that directory is python27.dll. This is probably caused by this:fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'- The Add/Remove Programs entry text should be: "pgAdmin 4 v1", thus allowing v1.1 to be a bug-fix release, and 2.0 to be the next major version.- Any pre-existing pgadmin4.db is being shipped.- Any pre-existing *.pyc files are being shipped.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment
Hello Dave,
Following things are also fixed in the patch as per discussed with sandeep.
- added "MINIFY_HTML = False" to config_local.py
- win-build removed following a successful build
Installer download link is:
https://uploads.enterprisedb.com/download.php?file=3d9f8c2458e27a5a34ba8e942687f55f
Attached is the updated patch.
On Fri, May 27, 2016 at 10:32 PM, Paresh More <paresh.more@enterprisedb.com> wrote:
Hello Dave,Make.bat usage is change toMake.bat x86 // It would generated 32 bit installerMake.bat adm64 // would generated 64 bit installerMake.bat clean // Will cleanup all output it creates in normal modeNow Make.bat would generated 32/64 installers as per selected.- Avoids trashing a pre-existing config_local.py, and creates a very simple one in the staging directory.DONE- Various tidy-ups of Make.bat.Tried to clean up code and added some information to the scripts- Change the default path to %ProgramFiles%\pgAdmin 4\v<major> (added the v, as <major> on it's own looks weird)DONE - Based on 32 bit or 64 bit it would install accordingly- Make.bat should take a "clean" parameter, to cleanup all output it creates in normal mode.DONE- The package name in the installer should be set from config.py as the version is.DONEpsycopg2 issue is resolved.- As far as I can see, the Helpfiles are not built or bundled (talk to Sandeep about this)DONE - Helpfiles are added to installer- No Start Menu icon is created.DONE- Why is 3rd_party_licences.txt included? We don't need that.Removed it is not required- pkg/win32/installer.iss should be added to a .gitignore file.DONE- SplashScreen.bmp doesn't seem to be used (though it is referenced from the installer config file.Splashscreen would be now displayed during installation- Based on 32/64 python27.dll would be shipped- The Add/Remove Programs entry text should be: "pgAdmin 4 v1", thus allowing v1.1 to be a bug-fix release, and 2.0 to be the next major version.DONE- Any pre-existing pgadmin4.db is being shipped.DONE- Any pre-existing *.pyc files are being shipped.DONEI have tested on 32 bit machine only and its working fine, for 64 bit all changes are in place, Make.bat amd64 would generate the desired installers.Attached is the updated Patch.--On Thu, May 26, 2016 at 7:13 PM, Dave Page <dpage@pgadmin.org> wrote:HiOn Fri, May 20, 2016 at 9:33 AM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Dave.Attached are two patch for pgAdmin4-windowspgAdmin4_createDB.patch- patch for pgAdmin4.py to autocreate database configuration if does not exist.- Now pgadmin.db would be not be bundled with installer, it would be created if pgAdmin4.py is executed for the first time.This is committed.pgAdmin4_windows.patch- Environment variables once set will over ride the existing script variables.- Issue related to path with quotes are removed.- New Readme.txt is added.- Modified Error reporting.- Python check was missing related to which requirement file it should pick for creating private environment based on python version is also fixed.Attached is an update to this patch, which modifies the following:- Avoids trashing a pre-existing config_local.py, and creates a very simple one in the staging directory.- Various tidy-ups of Make.bat.- Change the default path to %ProgramFiles%\pgAdmin 4\v<major> (added the v, as <major> on it's own looks weird)Please update further to address the following issues. I need this completed ASAP, thanks:- Make.bat should take a "clean" parameter, to cleanup all output it creates in normal mode.- The package name in the installer should be set from config.py as the version is.- I see the following error:error: [Error 183] Cannot create a file when that file already exists: 'build\\bdist.win32\\wheel\\importlib-1.0.3.data\\..'----------------------------------------Failed building wheel for importlib- And the following error:C:\Users\dpage\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\python27\Libs /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\libs /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\PCbuild /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\PC\VS9.0 /LIBPATH:C:/PROGRA~1/PG/pg95/lib ws2_32.lib advapi32.lib secur32.lib libpq.lib shfolder.lib build\temp.win32-2.7\Release\psycopg\psycopgmodule.obj build\temp.win32-2.7\Release\psycopg\green.obj build\temp.win32-2.7\Release\psycopg\pqpath.obj build\temp.win32-2.7\Release\psycopg\utils.obj build\temp.win32-2.7\Release\psycopg\bytes_format.obj build\temp.win32-2.7\Release\psycopg\connection_int.obj build\temp.win32-2.7\Release\psycopg\connection_type.obj build\temp.win32-2.7\Release\psycopg\cursor_int.obj build\temp.win32-2.7\Release\psycopg\cursor_type.obj build\temp.win32-2.7\Release\psycopg\diagnostics_type.obj build\temp.win32-2.7\Release\psycopg\error_type.obj build\temp.win32-2.7\Release\psycopg\lobject_int.obj build\temp.win32-2.7\Release\psycopg\lobject_type.obj build\temp.win32-2.7\Release\psycopg\notify_type.obj build\temp.win32-2.7\Release\psycopg\xid_type.obj build\temp.win32-2.7\Release\psycopg\adapter_asis.obj build\temp.win32-2.7\Release\psycopg\adapter_binary.obj build\temp.win32-2.7\Release\psycopg\adapter_datetime.obj build\temp.win32-2.7\Release\psycopg\adapter_list.obj build\temp.win32-2.7\Release\psycopg\adapter_pboolean.obj build\temp.win32-2.7\Release\psycopg\adapter_pdecimal.obj build\temp.win32-2.7\Release\psycopg\adapter_pint.obj build\temp.win32-2.7\Release\psycopg\adapter_pfloat.obj build\temp.win32-2.7\Release\psycopg\adapter_qstring.obj build\temp.win32-2.7\Release\psycopg\microprotocols.obj build\temp.win32-2.7\Release\psycopg\microprotocols_proto.obj build\temp.win32-2.7\Release\psycopg\typecast.obj /OUT:build\lib.win32-2.7\psycopg2\_psycopg.pyd /IMPLIB:build\temp.win32-2.7\Release\psycopg\_psycopg.lib /MANIFESTFILE:build\temp.win32-2.7\Release\psycopg\_psycopg.pyd.manifestLINK : fatal error LNK1181: cannot open input file 'libpq.lib'error: command 'C:\\Users\\dpage\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\link.exe' failed with exit status 1181----------------------------------------Failed building wheel for psycopg2%PGDIR% is set to: C:/Program Files (x86)/PostgreSQL/9.5, but note that /LIBPATH is including "C:/PROGRA~1/PG/pg95/lib".- As far as I can see, the Helpfiles are not built or bundled (talk to Sandeep about this)- No Start Menu icon is created.- Why is 3rd_party_licences.txt included? We don't need that.- pkg/win32/installer.iss should be added to a .gitignore file.- SplashScreen.bmp doesn't seem to be used (though it is referenced from the installer config file.- Running the app fails with the following (I suspect because of the psycopg2 issue above):---------------------------Setup---------------------------Unable to execute file:C:\Program Files (x86)\pgAdmin 4\v1\runtime\pgAdmin4.exeCreateProcess failed; code 2.The system cannot find the file specified.---------------------------OK---------------------------The only file in that directory is python27.dll. This is probably caused by this:fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'- The Add/Remove Programs entry text should be: "pgAdmin 4 v1", thus allowing v1.1 to be a bug-fix release, and 2.0 to be the next major version.- Any pre-existing pgadmin4.db is being shipped.- Any pre-existing *.pyc files are being shipped.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment
Hi
--
This still doesn't build for me:
> make x86
...
...
Generating Code...
link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='M
icrosoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture
='*'" /MANIFEST:embed /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nm5F51.tmp
Qt5Core.lib(Qt5Core.dll) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\link.EXE"' : return code '0x458'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'
Stop.
Aborting build!
"Preparing Creation of windows installer"
cp: cannot create regular file `C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\win-build\\/C:\\Users\\dpage\\Documen
ts\\pgadmin4\\pkg\\win32\\Resources\\pgAdmin4.ico': No such file or directory
"C:\Program Files (x86)\Inno Setup 5\ISCC.exe" /q "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"
Error on line 101 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:
Semicolon (';') expected.
Compile aborted.
(note that the build doesn't abort). I then try a different QTDIR, this time a 32 bit one:
link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='M
icrosoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture
='*'" /MANIFEST /MANIFESTFILE:release\pgAdmin4.exe.embed.manifest /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Loca
l\Temp\nm1C68.tmp
qtmain.lib(qtmain_win.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1800' in
pgAdmin4.obj
release\pgAdmin4.exe : fatal error LNK1319: 1 mismatches detected
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\link.EXE"' : return code '0x527'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'
Stop.
Aborting build!
"Preparing Creation of windows installer"
cp: cannot create regular file `C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\win-build\\/C:\\Users\\dpage\\Documen
ts\\pgadmin4\\pkg\\win32\\Resources\\pgAdmin4.ico': No such file or directory
"C:\Program Files (x86)\Inno Setup 5\ISCC.exe" /q "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"
Error on line 101 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:
Semicolon (';') expected.
Compile aborted.
If I then try a 64bit build:
> make amd64
...
...
Generating Code...
link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='M
icrosoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture
='*'" /MANIFEST:embed /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nmF7B9.tmp
Server.obj : error LNK2019: unresolved external symbol __imp_PyString_FromString referenced in function "public: __cdecl
Server::Server(unsigned short)" (??0Server@@QEAA@G@Z)
Server.obj : error LNK2019: unresolved external symbol __imp_PyList_Append referenced in function "public: __cdecl Serve
r::Server(unsigned short)" (??0Server@@QEAA@G@Z)
Server.obj : error LNK2019: unresolved external symbol __imp_PyFile_FromString referenced in function "protected: virtua
l void __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)
Server.obj : error LNK2019: unresolved external symbol __imp_PyFile_AsFile referenced in function "protected: virtual vo
id __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)
Server.obj : error LNK2019: unresolved external symbol __imp_Py_SetProgramName referenced in function "public: __cdecl S
erver::Server(unsigned short)" (??0Server@@QEAA@G@Z)
Server.obj : error LNK2019: unresolved external symbol __imp_Py_Initialize referenced in function "public: __cdecl Serve
r::Server(unsigned short)" (??0Server@@QEAA@G@Z)
Server.obj : error LNK2019: unresolved external symbol __imp_Py_Finalize referenced in function "public: virtual __cdecl
Server::~Server(void)" (??1Server@@UEAA@XZ)
Server.obj : error LNK2019: unresolved external symbol __imp_PyRun_SimpleStringFlags referenced in function "protected:
virtual void __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)
Server.obj : error LNK2019: unresolved external symbol __imp_PyRun_SimpleFileExFlags referenced in function "protected:
virtual void __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)
Server.obj : error LNK2019: unresolved external symbol __imp_PySys_GetObject referenced in function "public: __cdecl Ser
ver::Server(unsigned short)" (??0Server@@QEAA@G@Z)
Server.obj : error LNK2019: unresolved external symbol __imp_Py_NoSiteFlag referenced in function "public: __cdecl Serve
r::Server(unsigned short)" (??0Server@@QEAA@G@Z)
release\pgAdmin4.exe : fatal error LNK1120: 11 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\link.EXE"' : return code '
0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'
Stop.
Aborting build!
"Preparing Creation of windows installer"
cp: cannot create regular file `C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\win-build\\/C:\\Users\\dpage\\Documen
ts\\pgadmin4\\pkg\\win32\\Resources\\pgAdmin4.ico': No such file or directory
"C:\Program Files (x86)\Inno Setup 5\ISCC.exe" /q "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"
Error on line 101 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:
Semicolon (';') expected.
Compile aborted.On Mon, May 30,
So, specific issues seen:
- At least one of the default paths in make.bat is wrong - the one containing Syswow64 should contain a 32 bit library.
- The 32 bit paths will certainly be wrong on 32 bit Windows.
- Make.bat does not properly exit following errors.
- Error handlers like setPythonDetails don't have appropriate names (maybe err_handle_python ?)
- Error handlers like setPythonDetails display multiple errors at once, only one of may have been the actual problem.
- Using SET in the batch script is modifying the environment of the parent shell (which I found earlier has probably wasted a lot of my time)
- In general, it seems very fragile, and easy to break with different versions of tools being installed. Such issues should be checked for and warned about (e.g. if there is a 32/64 bit mismatch).
- Shouldn't it be PGDIR, not PG_PATH? That's what I see being used elsewhere.
- The installer build complains it cannot find the icon.
- The installer build fails due to a syntax error in installer.iss.
- Shouldn't the temp folders be in $SRC/win32-build to match what is done on Mac?
- A number of tabs have crept back into Make.bat after I replaced them all with ' ' last time.
- %wd is used in some places, %WD in others. Similar, rem vs. REM (the latter of which I standardised on last time)
- The README is poorly formatted and doesn't make sense in a number of places. Rough update attached for review and further improvement.
2016 at 7:40 AM, Paresh More <paresh.more@enterprisedb.com> wrote:
Hello Dave,Following things are also fixed in the patch as per discussed with sandeep.- added "MINIFY_HTML = False" to config_local.py- win-build removed following a successful buildInstaller download link is:
https://uploads.enterprisedb.com/download.php?file=3d9f8c2458e27a5a34ba8e942687f55fAttached is the updated patch.On Fri, May 27, 2016 at 10:32 PM, Paresh More <paresh.more@enterprisedb.com> wrote:Hello Dave,Make.bat usage is change toMake.bat x86 // It would generated 32 bit installerMake.bat adm64 // would generated 64 bit installerMake.bat clean // Will cleanup all output it creates in normal modeNow Make.bat would generated 32/64 installers as per selected.- Avoids trashing a pre-existing config_local.py, and creates a very simple one in the staging directory.DONE- Various tidy-ups of Make.bat.Tried to clean up code and added some information to the scripts- Change the default path to %ProgramFiles%\pgAdmin 4\v<major> (added the v, as <major> on it's own looks weird)DONE - Based on 32 bit or 64 bit it would install accordingly- Make.bat should take a "clean" parameter, to cleanup all output it creates in normal mode.DONE- The package name in the installer should be set from config.py as the version is.DONEpsycopg2 issue is resolved.- As far as I can see, the Helpfiles are not built or bundled (talk to Sandeep about this)DONE - Helpfiles are added to installer- No Start Menu icon is created.DONE- Why is 3rd_party_licences.txt included? We don't need that.Removed it is not required- pkg/win32/installer.iss should be added to a .gitignore file.DONE- SplashScreen.bmp doesn't seem to be used (though it is referenced from the installer config file.Splashscreen would be now displayed during installation- Based on 32/64 python27.dll would be shipped- The Add/Remove Programs entry text should be: "pgAdmin 4 v1", thus allowing v1.1 to be a bug-fix release, and 2.0 to be the next major version.DONE- Any pre-existing pgadmin4.db is being shipped.DONE- Any pre-existing *.pyc files are being shipped.DONEI have tested on 32 bit machine only and its working fine, for 64 bit all changes are in place, Make.bat amd64 would generate the desired installers.Attached is the updated Patch.--On Thu, May 26, 2016 at 7:13 PM, Dave Page <dpage@pgadmin.org> wrote:HiOn Fri, May 20, 2016 at 9:33 AM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Dave.Attached are two patch for pgAdmin4-windowspgAdmin4_createDB.patch- patch for pgAdmin4.py to autocreate database configuration if does not exist.- Now pgadmin.db would be not be bundled with installer, it would be created if pgAdmin4.py is executed for the first time.This is committed.pgAdmin4_windows.patch- Environment variables once set will over ride the existing script variables.- Issue related to path with quotes are removed.- New Readme.txt is added.- Modified Error reporting.- Python check was missing related to which requirement file it should pick for creating private environment based on python version is also fixed.Attached is an update to this patch, which modifies the following:- Avoids trashing a pre-existing config_local.py, and creates a very simple one in the staging directory.- Various tidy-ups of Make.bat.- Change the default path to %ProgramFiles%\pgAdmin 4\v<major> (added the v, as <major> on it's own looks weird)Please update further to address the following issues. I need this completed ASAP, thanks:- Make.bat should take a "clean" parameter, to cleanup all output it creates in normal mode.- The package name in the installer should be set from config.py as the version is.- I see the following error:error: [Error 183] Cannot create a file when that file already exists: 'build\\bdist.win32\\wheel\\importlib-1.0.3.data\\..'----------------------------------------Failed building wheel for importlib- And the following error:C:\Users\dpage\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\python27\Libs /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\libs /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\PCbuild /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\PC\VS9.0 /LIBPATH:C:/PROGRA~1/PG/pg95/lib ws2_32.lib advapi32.lib secur32.lib libpq.lib shfolder.lib build\temp.win32-2.7\Release\psycopg\psycopgmodule.obj build\temp.win32-2.7\Release\psycopg\green.obj build\temp.win32-2.7\Release\psycopg\pqpath.obj build\temp.win32-2.7\Release\psycopg\utils.obj build\temp.win32-2.7\Release\psycopg\bytes_format.obj build\temp.win32-2.7\Release\psycopg\connection_int.obj build\temp.win32-2.7\Release\psycopg\connection_type.obj build\temp.win32-2.7\Release\psycopg\cursor_int.obj build\temp.win32-2.7\Release\psycopg\cursor_type.obj build\temp.win32-2.7\Release\psycopg\diagnostics_type.obj build\temp.win32-2.7\Release\psycopg\error_type.obj build\temp.win32-2.7\Release\psycopg\lobject_int.obj build\temp.win32-2.7\Release\psycopg\lobject_type.obj build\temp.win32-2.7\Release\psycopg\notify_type.obj build\temp.win32-2.7\Release\psycopg\xid_type.obj build\temp.win32-2.7\Release\psycopg\adapter_asis.obj build\temp.win32-2.7\Release\psycopg\adapter_binary.obj build\temp.win32-2.7\Release\psycopg\adapter_datetime.obj build\temp.win32-2.7\Release\psycopg\adapter_list.obj build\temp.win32-2.7\Release\psycopg\adapter_pboolean.obj build\temp.win32-2.7\Release\psycopg\adapter_pdecimal.obj build\temp.win32-2.7\Release\psycopg\adapter_pint.obj build\temp.win32-2.7\Release\psycopg\adapter_pfloat.obj build\temp.win32-2.7\Release\psycopg\adapter_qstring.obj build\temp.win32-2.7\Release\psycopg\microprotocols.obj build\temp.win32-2.7\Release\psycopg\microprotocols_proto.obj build\temp.win32-2.7\Release\psycopg\typecast.obj /OUT:build\lib.win32-2.7\psycopg2\_psycopg.pyd /IMPLIB:build\temp.win32-2.7\Release\psycopg\_psycopg.lib /MANIFESTFILE:build\temp.win32-2.7\Release\psycopg\_psycopg.pyd.manifestLINK : fatal error LNK1181: cannot open input file 'libpq.lib'error: command 'C:\\Users\\dpage\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\link.exe' failed with exit status 1181----------------------------------------Failed building wheel for psycopg2%PGDIR% is set to: C:/Program Files (x86)/PostgreSQL/9.5, but note that /LIBPATH is including "C:/PROGRA~1/PG/pg95/lib".- As far as I can see, the Helpfiles are not built or bundled (talk to Sandeep about this)- No Start Menu icon is created.- Why is 3rd_party_licences.txt included? We don't need that.- pkg/win32/installer.iss should be added to a .gitignore file.- SplashScreen.bmp doesn't seem to be used (though it is referenced from the installer config file.- Running the app fails with the following (I suspect because of the psycopg2 issue above):---------------------------Setup---------------------------Unable to execute file:C:\Program Files (x86)\pgAdmin 4\v1\runtime\pgAdmin4.exeCreateProcess failed; code 2.The system cannot find the file specified.---------------------------OK---------------------------The only file in that directory is python27.dll. This is probably caused by this:fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'- The Add/Remove Programs entry text should be: "pgAdmin 4 v1", thus allowing v1.1 to be a bug-fix release, and 2.0 to be the next major version.- Any pre-existing pgadmin4.db is being shipped.- Any pre-existing *.pyc files are being shipped.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment
Oh - in addition, pgadmin4.db is being shipped.
On Tue, May 31, 2016 at 3:04 PM, Dave Page <dpage@pgadmin.org> wrote:
HiThis still doesn't build for me:> make x86......Generating Code...link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nm5F51.tmpQt5Core.lib(Qt5Core.dll) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\link.EXE"' : return code '0x458'Stop.NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'Stop.Aborting build!"Preparing Creation of windows installer"cp: cannot create regular file `C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\win-build\\/C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\Resources\\pgAdmin4.ico': No such file or directory"C:\Program Files (x86)\Inno Setup 5\ISCC.exe" /q "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"Error on line 101 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:Semicolon (';') expected.Compile aborted.(note that the build doesn't abort). I then try a different QTDIR, this time a 32 bit one:link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:release\pgAdmin4.exe.embed.manifest /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nm1C68.tmpqtmain.lib(qtmain_win.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1800' inpgAdmin4.objrelease\pgAdmin4.exe : fatal error LNK1319: 1 mismatches detectedNMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\link.EXE"' : return code '0x527'Stop.NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'Stop.Aborting build!"Preparing Creation of windows installer"cp: cannot create regular file `C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\win-build\\/C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\Resources\\pgAdmin4.ico': No such file or directory"C:\Program Files (x86)\Inno Setup 5\ISCC.exe" /q "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"Error on line 101 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:Semicolon (';') expected.Compile aborted.If I then try a 64bit build:> make amd64......Generating Code...link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nmF7B9.tmpServer.obj : error LNK2019: unresolved external symbol __imp_PyString_FromString referenced in function "public: __cdeclServer::Server(unsigned short)" (??0Server@@QEAA@G@Z)Server.obj : error LNK2019: unresolved external symbol __imp_PyList_Append referenced in function "public: __cdecl Server::Server(unsigned short)" (??0Server@@QEAA@G@Z)Server.obj : error LNK2019: unresolved external symbol __imp_PyFile_FromString referenced in function "protected: virtual void __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)Server.obj : error LNK2019: unresolved external symbol __imp_PyFile_AsFile referenced in function "protected: virtual void __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)Server.obj : error LNK2019: unresolved external symbol __imp_Py_SetProgramName referenced in function "public: __cdecl Server::Server(unsigned short)" (??0Server@@QEAA@G@Z)Server.obj : error LNK2019: unresolved external symbol __imp_Py_Initialize referenced in function "public: __cdecl Server::Server(unsigned short)" (??0Server@@QEAA@G@Z)Server.obj : error LNK2019: unresolved external symbol __imp_Py_Finalize referenced in function "public: virtual __cdeclServer::~Server(void)" (??1Server@@UEAA@XZ)Server.obj : error LNK2019: unresolved external symbol __imp_PyRun_SimpleStringFlags referenced in function "protected:virtual void __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)Server.obj : error LNK2019: unresolved external symbol __imp_PyRun_SimpleFileExFlags referenced in function "protected:virtual void __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)Server.obj : error LNK2019: unresolved external symbol __imp_PySys_GetObject referenced in function "public: __cdecl Server::Server(unsigned short)" (??0Server@@QEAA@G@Z)Server.obj : error LNK2019: unresolved external symbol __imp_Py_NoSiteFlag referenced in function "public: __cdecl Server::Server(unsigned short)" (??0Server@@QEAA@G@Z)release\pgAdmin4.exe : fatal error LNK1120: 11 unresolved externalsNMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\link.EXE"' : return code '0x460'Stop.NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'Stop.Aborting build!"Preparing Creation of windows installer"cp: cannot create regular file `C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\win-build\\/C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\Resources\\pgAdmin4.ico': No such file or directory"C:\Program Files (x86)\Inno Setup 5\ISCC.exe" /q "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"Error on line 101 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:Semicolon (';') expected.Compile aborted.On Mon, May 30,So, specific issues seen:- At least one of the default paths in make.bat is wrong - the one containing Syswow64 should contain a 32 bit library.- The 32 bit paths will certainly be wrong on 32 bit Windows.- Make.bat does not properly exit following errors.- Error handlers like setPythonDetails don't have appropriate names (maybe err_handle_python ?)- Error handlers like setPythonDetails display multiple errors at once, only one of may have been the actual problem.- Using SET in the batch script is modifying the environment of the parent shell (which I found earlier has probably wasted a lot of my time)- In general, it seems very fragile, and easy to break with different versions of tools being installed. Such issues should be checked for and warned about (e.g. if there is a 32/64 bit mismatch).- Shouldn't it be PGDIR, not PG_PATH? That's what I see being used elsewhere.- The installer build complains it cannot find the icon.- The installer build fails due to a syntax error in installer.iss.- Shouldn't the temp folders be in $SRC/win32-build to match what is done on Mac?- A number of tabs have crept back into Make.bat after I replaced them all with ' ' last time.- %wd is used in some places, %WD in others. Similar, rem vs. REM (the latter of which I standardised on last time)- The README is poorly formatted and doesn't make sense in a number of places. Rough update attached for review and further improvement.2016 at 7:40 AM, Paresh More <paresh.more@enterprisedb.com> wrote:Hello Dave,Following things are also fixed in the patch as per discussed with sandeep.- added "MINIFY_HTML = False" to config_local.py- win-build removed following a successful buildInstaller download link is:
https://uploads.enterprisedb.com/download.php?file=3d9f8c2458e27a5a34ba8e942687f55fAttached is the updated patch.On Fri, May 27, 2016 at 10:32 PM, Paresh More <paresh.more@enterprisedb.com> wrote:Hello Dave,Make.bat usage is change toMake.bat x86 // It would generated 32 bit installerMake.bat adm64 // would generated 64 bit installerMake.bat clean // Will cleanup all output it creates in normal modeNow Make.bat would generated 32/64 installers as per selected.- Avoids trashing a pre-existing config_local.py, and creates a very simple one in the staging directory.DONE- Various tidy-ups of Make.bat.Tried to clean up code and added some information to the scripts- Change the default path to %ProgramFiles%\pgAdmin 4\v<major> (added the v, as <major> on it's own looks weird)DONE - Based on 32 bit or 64 bit it would install accordingly- Make.bat should take a "clean" parameter, to cleanup all output it creates in normal mode.DONE- The package name in the installer should be set from config.py as the version is.DONEpsycopg2 issue is resolved.- As far as I can see, the Helpfiles are not built or bundled (talk to Sandeep about this)DONE - Helpfiles are added to installer- No Start Menu icon is created.DONE- Why is 3rd_party_licences.txt included? We don't need that.Removed it is not required- pkg/win32/installer.iss should be added to a .gitignore file.DONE- SplashScreen.bmp doesn't seem to be used (though it is referenced from the installer config file.Splashscreen would be now displayed during installation- Based on 32/64 python27.dll would be shipped- The Add/Remove Programs entry text should be: "pgAdmin 4 v1", thus allowing v1.1 to be a bug-fix release, and 2.0 to be the next major version.DONE- Any pre-existing pgadmin4.db is being shipped.DONE- Any pre-existing *.pyc files are being shipped.DONEI have tested on 32 bit machine only and its working fine, for 64 bit all changes are in place, Make.bat amd64 would generate the desired installers.Attached is the updated Patch.--On Thu, May 26, 2016 at 7:13 PM, Dave Page <dpage@pgadmin.org> wrote:HiOn Fri, May 20, 2016 at 9:33 AM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Dave.Attached are two patch for pgAdmin4-windowspgAdmin4_createDB.patch- patch for pgAdmin4.py to autocreate database configuration if does not exist.- Now pgadmin.db would be not be bundled with installer, it would be created if pgAdmin4.py is executed for the first time.This is committed.pgAdmin4_windows.patch- Environment variables once set will over ride the existing script variables.- Issue related to path with quotes are removed.- New Readme.txt is added.- Modified Error reporting.- Python check was missing related to which requirement file it should pick for creating private environment based on python version is also fixed.Attached is an update to this patch, which modifies the following:- Avoids trashing a pre-existing config_local.py, and creates a very simple one in the staging directory.- Various tidy-ups of Make.bat.- Change the default path to %ProgramFiles%\pgAdmin 4\v<major> (added the v, as <major> on it's own looks weird)Please update further to address the following issues. I need this completed ASAP, thanks:- Make.bat should take a "clean" parameter, to cleanup all output it creates in normal mode.- The package name in the installer should be set from config.py as the version is.- I see the following error:error: [Error 183] Cannot create a file when that file already exists: 'build\\bdist.win32\\wheel\\importlib-1.0.3.data\\..'----------------------------------------Failed building wheel for importlib- And the following error:C:\Users\dpage\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\python27\Libs /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\libs /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\PCbuild /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\PC\VS9.0 /LIBPATH:C:/PROGRA~1/PG/pg95/lib ws2_32.lib advapi32.lib secur32.lib libpq.lib shfolder.lib build\temp.win32-2.7\Release\psycopg\psycopgmodule.obj build\temp.win32-2.7\Release\psycopg\green.obj build\temp.win32-2.7\Release\psycopg\pqpath.obj build\temp.win32-2.7\Release\psycopg\utils.obj build\temp.win32-2.7\Release\psycopg\bytes_format.obj build\temp.win32-2.7\Release\psycopg\connection_int.obj build\temp.win32-2.7\Release\psycopg\connection_type.obj build\temp.win32-2.7\Release\psycopg\cursor_int.obj build\temp.win32-2.7\Release\psycopg\cursor_type.obj build\temp.win32-2.7\Release\psycopg\diagnostics_type.obj build\temp.win32-2.7\Release\psycopg\error_type.obj build\temp.win32-2.7\Release\psycopg\lobject_int.obj build\temp.win32-2.7\Release\psycopg\lobject_type.obj build\temp.win32-2.7\Release\psycopg\notify_type.obj build\temp.win32-2.7\Release\psycopg\xid_type.obj build\temp.win32-2.7\Release\psycopg\adapter_asis.obj build\temp.win32-2.7\Release\psycopg\adapter_binary.obj build\temp.win32-2.7\Release\psycopg\adapter_datetime.obj build\temp.win32-2.7\Release\psycopg\adapter_list.obj build\temp.win32-2.7\Release\psycopg\adapter_pboolean.obj build\temp.win32-2.7\Release\psycopg\adapter_pdecimal.obj build\temp.win32-2.7\Release\psycopg\adapter_pint.obj build\temp.win32-2.7\Release\psycopg\adapter_pfloat.obj build\temp.win32-2.7\Release\psycopg\adapter_qstring.obj build\temp.win32-2.7\Release\psycopg\microprotocols.obj build\temp.win32-2.7\Release\psycopg\microprotocols_proto.obj build\temp.win32-2.7\Release\psycopg\typecast.obj /OUT:build\lib.win32-2.7\psycopg2\_psycopg.pyd /IMPLIB:build\temp.win32-2.7\Release\psycopg\_psycopg.lib /MANIFESTFILE:build\temp.win32-2.7\Release\psycopg\_psycopg.pyd.manifestLINK : fatal error LNK1181: cannot open input file 'libpq.lib'error: command 'C:\\Users\\dpage\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\link.exe' failed with exit status 1181----------------------------------------Failed building wheel for psycopg2%PGDIR% is set to: C:/Program Files (x86)/PostgreSQL/9.5, but note that /LIBPATH is including "C:/PROGRA~1/PG/pg95/lib".- As far as I can see, the Helpfiles are not built or bundled (talk to Sandeep about this)- No Start Menu icon is created.- Why is 3rd_party_licences.txt included? We don't need that.- pkg/win32/installer.iss should be added to a .gitignore file.- SplashScreen.bmp doesn't seem to be used (though it is referenced from the installer config file.- Running the app fails with the following (I suspect because of the psycopg2 issue above):---------------------------Setup---------------------------Unable to execute file:C:\Program Files (x86)\pgAdmin 4\v1\runtime\pgAdmin4.exeCreateProcess failed; code 2.The system cannot find the file specified.---------------------------OK---------------------------The only file in that directory is python27.dll. This is probably caused by this:fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'- The Add/Remove Programs entry text should be: "pgAdmin 4 v1", thus allowing v1.1 to be a bug-fix release, and 2.0 to be the next major version.- Any pre-existing pgadmin4.db is being shipped.- Any pre-existing *.pyc files are being shipped.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company----Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Hello Dave
Attached is the updated patch for pgAdmin 4 windows
- Windows x86 and amd64 check is added, so now on 32 machine if amd64 is selected it would not allow to generate installer.
- check is added which will check if any mismatch in QT(msvc) and VC version
Installer location -
https://uploads.enterprisedb.com/download.php?file=7486e62c393b168f3df74d983268b923
And all issues which you mentioned are also fixed.
On Tue, May 31, 2016 at 8:17 PM, Dave Page <dpage@pgadmin.org> wrote:
Oh - in addition, pgadmin4.db is being shipped.On Tue, May 31, 2016 at 3:04 PM, Dave Page <dpage@pgadmin.org> wrote:HiThis still doesn't build for me:> make x86......Generating Code...link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nm5F51.tmpQt5Core.lib(Qt5Core.dll) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\link.EXE"' : return code '0x458'Stop.NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'Stop.Aborting build!"Preparing Creation of windows installer"cp: cannot create regular file `C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\win-build\\/C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\Resources\\pgAdmin4.ico': No such file or directory"C:\Program Files (x86)\Inno Setup 5\ISCC.exe" /q "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"Error on line 101 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:Semicolon (';') expected.Compile aborted.(note that the build doesn't abort). I then try a different QTDIR, this time a 32 bit one:link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:release\pgAdmin4.exe.embed.manifest /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nm1C68.tmpqtmain.lib(qtmain_win.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1800' inpgAdmin4.objrelease\pgAdmin4.exe : fatal error LNK1319: 1 mismatches detectedNMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\link.EXE"' : return code '0x527'Stop.NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'Stop.Aborting build!"Preparing Creation of windows installer"cp: cannot create regular file `C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\win-build\\/C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\Resources\\pgAdmin4.ico': No such file or directory"C:\Program Files (x86)\Inno Setup 5\ISCC.exe" /q "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"Error on line 101 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:Semicolon (';') expected.Compile aborted.If I then try a 64bit build:> make amd64......Generating Code...link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nmF7B9.tmpServer.obj : error LNK2019: unresolved external symbol __imp_PyString_FromString referenced in function "public: __cdeclServer::Server(unsigned short)" (??0Server@@QEAA@G@Z)Server.obj : error LNK2019: unresolved external symbol __imp_PyList_Append referenced in function "public: __cdecl Server::Server(unsigned short)" (??0Server@@QEAA@G@Z)Server.obj : error LNK2019: unresolved external symbol __imp_PyFile_FromString referenced in function "protected: virtual void __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)Server.obj : error LNK2019: unresolved external symbol __imp_PyFile_AsFile referenced in function "protected: virtual void __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)Server.obj : error LNK2019: unresolved external symbol __imp_Py_SetProgramName referenced in function "public: __cdecl Server::Server(unsigned short)" (??0Server@@QEAA@G@Z)Server.obj : error LNK2019: unresolved external symbol __imp_Py_Initialize referenced in function "public: __cdecl Server::Server(unsigned short)" (??0Server@@QEAA@G@Z)Server.obj : error LNK2019: unresolved external symbol __imp_Py_Finalize referenced in function "public: virtual __cdeclServer::~Server(void)" (??1Server@@UEAA@XZ)Server.obj : error LNK2019: unresolved external symbol __imp_PyRun_SimpleStringFlags referenced in function "protected:virtual void __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)Server.obj : error LNK2019: unresolved external symbol __imp_PyRun_SimpleFileExFlags referenced in function "protected:virtual void __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)Server.obj : error LNK2019: unresolved external symbol __imp_PySys_GetObject referenced in function "public: __cdecl Server::Server(unsigned short)" (??0Server@@QEAA@G@Z)Server.obj : error LNK2019: unresolved external symbol __imp_Py_NoSiteFlag referenced in function "public: __cdecl Server::Server(unsigned short)" (??0Server@@QEAA@G@Z)release\pgAdmin4.exe : fatal error LNK1120: 11 unresolved externalsNMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\link.EXE"' : return code '0x460'Stop.NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2'Stop.Aborting build!"Preparing Creation of windows installer"cp: cannot create regular file `C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\win-build\\/C:\\Users\\dpage\\Documents\\pgadmin4\\pkg\\win32\\Resources\\pgAdmin4.ico': No such file or directory"C:\Program Files (x86)\Inno Setup 5\ISCC.exe" /q "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"Error on line 101 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:Semicolon (';') expected.Compile aborted.On Mon, May 30,So, specific issues seen:- At least one of the default paths in make.bat is wrong - the one containing Syswow64 should contain a 32 bit library.- The 32 bit paths will certainly be wrong on 32 bit Windows.- Make.bat does not properly exit following errors.- Error handlers like setPythonDetails don't have appropriate names (maybe err_handle_python ?)- Error handlers like setPythonDetails display multiple errors at once, only one of may have been the actual problem.- Using SET in the batch script is modifying the environment of the parent shell (which I found earlier has probably wasted a lot of my time)- In general, it seems very fragile, and easy to break with different versions of tools being installed. Such issues should be checked for and warned about (e.g. if there is a 32/64 bit mismatch).- Shouldn't it be PGDIR, not PG_PATH? That's what I see being used elsewhere.- The installer build complains it cannot find the icon.- The installer build fails due to a syntax error in installer.iss.- Shouldn't the temp folders be in $SRC/win32-build to match what is done on Mac?- A number of tabs have crept back into Make.bat after I replaced them all with ' ' last time.- %wd is used in some places, %WD in others. Similar, rem vs. REM (the latter of which I standardised on last time)- The README is poorly formatted and doesn't make sense in a number of places. Rough update attached for review and further improvement.2016 at 7:40 AM, Paresh More <paresh.more@enterprisedb.com> wrote:Hello Dave,Following things are also fixed in the patch as per discussed with sandeep.- added "MINIFY_HTML = False" to config_local.py- win-build removed following a successful buildInstaller download link is:
https://uploads.enterprisedb.com/download.php?file=3d9f8c2458e27a5a34ba8e942687f55fAttached is the updated patch.On Fri, May 27, 2016 at 10:32 PM, Paresh More <paresh.more@enterprisedb.com> wrote:Hello Dave,Make.bat usage is change toMake.bat x86 // It would generated 32 bit installerMake.bat adm64 // would generated 64 bit installerMake.bat clean // Will cleanup all output it creates in normal modeNow Make.bat would generated 32/64 installers as per selected.- Avoids trashing a pre-existing config_local.py, and creates a very simple one in the staging directory.DONE- Various tidy-ups of Make.bat.Tried to clean up code and added some information to the scripts- Change the default path to %ProgramFiles%\pgAdmin 4\v<major> (added the v, as <major> on it's own looks weird)DONE - Based on 32 bit or 64 bit it would install accordingly- Make.bat should take a "clean" parameter, to cleanup all output it creates in normal mode.DONE- The package name in the installer should be set from config.py as the version is.DONEpsycopg2 issue is resolved.- As far as I can see, the Helpfiles are not built or bundled (talk to Sandeep about this)DONE - Helpfiles are added to installer- No Start Menu icon is created.DONE- Why is 3rd_party_licences.txt included? We don't need that.Removed it is not required- pkg/win32/installer.iss should be added to a .gitignore file.DONE- SplashScreen.bmp doesn't seem to be used (though it is referenced from the installer config file.Splashscreen would be now displayed during installation- Based on 32/64 python27.dll would be shipped- The Add/Remove Programs entry text should be: "pgAdmin 4 v1", thus allowing v1.1 to be a bug-fix release, and 2.0 to be the next major version.DONE- Any pre-existing pgadmin4.db is being shipped.DONE- Any pre-existing *.pyc files are being shipped.DONEI have tested on 32 bit machine only and its working fine, for 64 bit all changes are in place, Make.bat amd64 would generate the desired installers.Attached is the updated Patch.--On Thu, May 26, 2016 at 7:13 PM, Dave Page <dpage@pgadmin.org> wrote:HiOn Fri, May 20, 2016 at 9:33 AM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Dave.Attached are two patch for pgAdmin4-windowspgAdmin4_createDB.patch- patch for pgAdmin4.py to autocreate database configuration if does not exist.- Now pgadmin.db would be not be bundled with installer, it would be created if pgAdmin4.py is executed for the first time.This is committed.pgAdmin4_windows.patch- Environment variables once set will over ride the existing script variables.- Issue related to path with quotes are removed.- New Readme.txt is added.- Modified Error reporting.- Python check was missing related to which requirement file it should pick for creating private environment based on python version is also fixed.Attached is an update to this patch, which modifies the following:- Avoids trashing a pre-existing config_local.py, and creates a very simple one in the staging directory.- Various tidy-ups of Make.bat.- Change the default path to %ProgramFiles%\pgAdmin 4\v<major> (added the v, as <major> on it's own looks weird)Please update further to address the following issues. I need this completed ASAP, thanks:- Make.bat should take a "clean" parameter, to cleanup all output it creates in normal mode.- The package name in the installer should be set from config.py as the version is.- I see the following error:error: [Error 183] Cannot create a file when that file already exists: 'build\\bdist.win32\\wheel\\importlib-1.0.3.data\\..'----------------------------------------Failed building wheel for importlib- And the following error:C:\Users\dpage\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\python27\Libs /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\libs /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\PCbuild /LIBPATH:c:\users\dpage\documents\pgadmin4\pkg\win32\release\ve_python\PC\VS9.0 /LIBPATH:C:/PROGRA~1/PG/pg95/lib ws2_32.lib advapi32.lib secur32.lib libpq.lib shfolder.lib build\temp.win32-2.7\Release\psycopg\psycopgmodule.obj build\temp.win32-2.7\Release\psycopg\green.obj build\temp.win32-2.7\Release\psycopg\pqpath.obj build\temp.win32-2.7\Release\psycopg\utils.obj build\temp.win32-2.7\Release\psycopg\bytes_format.obj build\temp.win32-2.7\Release\psycopg\connection_int.obj build\temp.win32-2.7\Release\psycopg\connection_type.obj build\temp.win32-2.7\Release\psycopg\cursor_int.obj build\temp.win32-2.7\Release\psycopg\cursor_type.obj build\temp.win32-2.7\Release\psycopg\diagnostics_type.obj build\temp.win32-2.7\Release\psycopg\error_type.obj build\temp.win32-2.7\Release\psycopg\lobject_int.obj build\temp.win32-2.7\Release\psycopg\lobject_type.obj build\temp.win32-2.7\Release\psycopg\notify_type.obj build\temp.win32-2.7\Release\psycopg\xid_type.obj build\temp.win32-2.7\Release\psycopg\adapter_asis.obj build\temp.win32-2.7\Release\psycopg\adapter_binary.obj build\temp.win32-2.7\Release\psycopg\adapter_datetime.obj build\temp.win32-2.7\Release\psycopg\adapter_list.obj build\temp.win32-2.7\Release\psycopg\adapter_pboolean.obj build\temp.win32-2.7\Release\psycopg\adapter_pdecimal.obj build\temp.win32-2.7\Release\psycopg\adapter_pint.obj build\temp.win32-2.7\Release\psycopg\adapter_pfloat.obj build\temp.win32-2.7\Release\psycopg\adapter_qstring.obj build\temp.win32-2.7\Release\psycopg\microprotocols.obj build\temp.win32-2.7\Release\psycopg\microprotocols_proto.obj build\temp.win32-2.7\Release\psycopg\typecast.obj /OUT:build\lib.win32-2.7\psycopg2\_psycopg.pyd /IMPLIB:build\temp.win32-2.7\Release\psycopg\_psycopg.lib /MANIFESTFILE:build\temp.win32-2.7\Release\psycopg\_psycopg.pyd.manifestLINK : fatal error LNK1181: cannot open input file 'libpq.lib'error: command 'C:\\Users\\dpage\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\link.exe' failed with exit status 1181----------------------------------------Failed building wheel for psycopg2%PGDIR% is set to: C:/Program Files (x86)/PostgreSQL/9.5, but note that /LIBPATH is including "C:/PROGRA~1/PG/pg95/lib".- As far as I can see, the Helpfiles are not built or bundled (talk to Sandeep about this)- No Start Menu icon is created.- Why is 3rd_party_licences.txt included? We don't need that.- pkg/win32/installer.iss should be added to a .gitignore file.- SplashScreen.bmp doesn't seem to be used (though it is referenced from the installer config file.- Running the app fails with the following (I suspect because of the psycopg2 issue above):---------------------------Setup---------------------------Unable to execute file:C:\Program Files (x86)\pgAdmin 4\v1\runtime\pgAdmin4.exeCreateProcess failed; code 2.The system cannot find the file specified.---------------------------OK---------------------------The only file in that directory is python27.dll. This is probably caused by this:fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'- The Add/Remove Programs entry text should be: "pgAdmin 4 v1", thus allowing v1.1 to be a bug-fix release, and 2.0 to be the next major version.- Any pre-existing pgadmin4.db is being shipped.- Any pre-existing *.pyc files are being shipped.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company----Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company--Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment
Hi
--
On Fri, Jun 3, 2016 at 2:45 PM, Paresh More <paresh.more@enterprisedb.com> wrote:
Hello DaveAttached is the updated patch for pgAdmin 4 windows- Windows x86 and amd64 check is added, so now on 32 machine if amd64 is selected it would not allow to generate installer.- check is added which will check if any mismatch in QT(msvc) and VC version
Yeah, that is better (e.g. it detected one mismatch), but after I updated Qt so I had 5.5 with the msvc2013 and msvc2013_64 kits installed, it would still let me try to build a 32 bit package with msvc2013_64.
And all issues which you mentioned are also fixed.
Not entirely:
Error on line 101 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:
Semicolon (';') expected.
Compile aborted.
- A number of tabs have crept back into Make.bat after I replaced them all with ' ' last time.
I've fixed a few more tabs, and tidied up the README and Make.bat some more. Please find attached. I've still yet to get a working installer out.
Thanks.
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment
Hello Dave.
There was problem with the Make.bat file ^M characters which is been removed.
Issues are fixed along with some code and README tidied
On Fri, Jun 3, 2016 at 9:59 PM, Dave Page <dpage@pgadmin.org> wrote:
HiOn Fri, Jun 3, 2016 at 2:45 PM, Paresh More <paresh.more@enterprisedb.com> wrote:Hello DaveAttached is the updated patch for pgAdmin 4 windows- Windows x86 and amd64 check is added, so now on 32 machine if amd64 is selected it would not allow to generate installer.- check is added which will check if any mismatch in QT(msvc) and VC versionYeah, that is better (e.g. it detected one mismatch), but after I updated Qt so I had 5.5 with the msvc2013 and msvc2013_64 kits installed, it would still let me try to build a 32 bit package with msvc2013_64.And all issues which you mentioned are also fixed.Not entirely:Error on line 101 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:Semicolon (';') expected.Compile aborted.- A number of tabs have crept back into Make.bat after I replaced them all with ' ' last time.I've fixed a few more tabs, and tidied up the README and Make.bat some more. Please find attached. I've still yet to get a working installer out.Thanks.--Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment
Hi,
On Fri, Jun 3, 2016 at 9:30 PM, Paresh More <paresh.more@enterprisedb.com> wrote:
-- Hello Dave.There was problem with the Make.bat file ^M characters which is been removed.Issues are fixed along with some code and README tidied
I'm still seeing the same error:
copy "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss.in" "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"
1 file(s) copied.
Error on line 113 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:
Semicolon (';') expected.
Compile aborted.
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Hello Dave,
Can you please attached the file C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss
On Mon, Jun 6, 2016 at 2:51 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi,On Fri, Jun 3, 2016 at 9:30 PM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Dave.There was problem with the Make.bat file ^M characters which is been removed.Issues are fixed along with some code and README tidiedI'm still seeing the same error:copy "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss.in" "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"1 file(s) copied.Error on line 113 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:Semicolon (';') expected.Compile aborted.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
PFA.
On Mon, Jun 6, 2016 at 10:46 AM, Paresh More <paresh.more@enterprisedb.com> wrote:
Hello Dave,Can you please attached the file C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss--On Mon, Jun 6, 2016 at 2:51 PM, Dave Page <dpage@pgadmin.org> wrote:Hi,On Fri, Jun 3, 2016 at 9:30 PM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Dave.There was problem with the Make.bat file ^M characters which is been removed.Issues are fixed along with some code and README tidiedI'm still seeing the same error:copy "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss.in" "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"1 file(s) copied.Error on line 113 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:Semicolon (';') expected.Compile aborted.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment
Hello Dave,
Windows batch has problem with file search and replace when it comes to white spaces. Now the search and replace code is change to python.
So the installer creation issue is resolve.
Attached is the updated patch.
On Mon, Jun 6, 2016 at 2:51 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi,On Fri, Jun 3, 2016 at 9:30 PM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Dave.There was problem with the Make.bat file ^M characters which is been removed.Issues are fixed along with some code and README tidiedI'm still seeing the same error:copy "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss.in" "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"1 file(s) copied.Error on line 113 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:Semicolon (';') expected.Compile aborted.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment
Hello Dave,
Attached is the updated patch.
As discuss added vcdist runtime, remove splash screen and added start menu icon.
Now also inno setup standard and Unicode both version are working fine.
Attached is the updated patch.
On Mon, Jun 6, 2016 at 2:51 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi,On Fri, Jun 3, 2016 at 9:30 PM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Dave.There was problem with the Make.bat file ^M characters which is been removed.Issues are fixed along with some code and README tidiedI'm still seeing the same error:copy "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss.in" "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"1 file(s) copied.Error on line 113 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:Semicolon (';') expected.Compile aborted.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
--
Attachment
Thanks! That's now committed, with a few modifications:
- Install/uninstall Sphinx as it's not actually in the requirements.txt file and is only needed for building.
- Detect errors in the doc build.
- Rename ve_python to venv for consistency with Mac.
- Comment/progress info improvements
On Wed, Jun 8, 2016 at 7:23 AM, Paresh More <paresh.more@enterprisedb.com> wrote:
Hello Dave,As discuss added vcdist runtime, remove splash screen and added start menu icon.Now also inno setup standard and Unicode both version are working fine.
Attached is the updated patch.--On Mon, Jun 6, 2016 at 2:51 PM, Dave Page <dpage@pgadmin.org> wrote:Hi,On Fri, Jun 3, 2016 at 9:30 PM, Paresh More <paresh.more@enterprisedb.com> wrote:--Hello Dave.There was problem with the Make.bat file ^M characters which is been removed.Issues are fixed along with some code and README tidiedI'm still seeing the same error:copy "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss.in" "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss"1 file(s) copied.Error on line 113 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Column 3:Semicolon (';') expected.Compile aborted.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company