Re: PATCH: pgAdmin4 windows installer

Поиск
Список
Период
Сортировка
От Dave Page
Тема Re: PATCH: pgAdmin4 windows installer
Дата
Msg-id CA+OCxoztEfCmDLYYiETwZEkhzwJa72kVgNKHh9nh9Z6rrMj7rQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: PATCH: pgAdmin4 windows installer  (Dave Page <dpage@pgadmin.org>)
Ответы Re: PATCH: pgAdmin4 windows installer  (Paresh More <paresh.more@enterprisedb.com>)
Список pgadmin-hackers
Oh - in addition, pgadmin4.db is being shipped.

On Tue, May 31, 2016 at 3:04 PM, Dave Page <dpage@pgadmin.org> wrote:
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 build


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 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:
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-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.

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



--

Thanks & Regards

Paresh More

NEW-EDB-logo-4c

Pune, India.




--

Thanks & Regards

Paresh More

NEW-EDB-logo-4c

Pune, India.




--
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

В списке pgadmin-hackers по дате отправления:

Предыдущее
От: Murtuza Zabuawala
Дата:
Сообщение: PATCH: To fix expanding server if server inaccessible (pgAdmin4)
Следующее
От: Dave Page
Дата:
Сообщение: Re: PATCH: To fix expanding server if server inaccessible (pgAdmin4)