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.m...@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
>
> 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.m...@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 <dp...@pgadmin.org> wrote:
>>
>>> Hi
>>>
>>> On Fri, May 20, 2016 at 9:33 AM, Paresh More <
>>> paresh.m...@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*
>>
>> [image: NEW-EDB-logo-4c]
>>
>> Pune, India.
>> Cell :  +919922000564 |  www.enterprisedb.com
>>
>
>
>
> --
>
> Thanks & Regards
>
> *Paresh More*
>
> [image: NEW-EDB-logo-4c]
>
> Pune, India.
> Cell :  +919922000564 |  www.enterprisedb.com
>



-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
pgAdmin 4
=========

Prerequisites
-------------

To generate a pgAdmin 4 installer for Windows bit, the following packages 
must be installed:

- QT 4.6 or above (older versions may work, but haven't been tested).
- Python 2.6 or above.
- Inno Tool Version 5.5.8 and Above
- Microsoft visual studio (2013)

The following environment variables may be defined to override defaults in the
build script (Make.bat):

INNOTOOL, VCDIR, PYTHON_HOME, PYTHON_DLL, QTDIR, PG_PATH

The default settings are equivalent to (on x86):

SET "PYTHON_HOME=C:\Python27"
SET "PYTHON_DLL=C:\Windows\System32\python27.dll"
SET "QTDIR=C:\Qt\Qt5.5.1\5.5\msvc2013"
SET "PG_PATH=C:\Program Files (x86)\PostgreSQL\9.5"

Or on x86_64:

SET "PYTHON_HOME=C:\Python27-x64"
SET "PYTHON_DLL=C:\Windows\SysWOW64\python27.dll"
SET "QTDIR=C:\Qt-x64\Qt5.5.1\5.5\msvc2013"
SET "PG_PATH=C:\Program Files\PostgreSQL\9.5"

Plus, on either architecture:

SET "INNOTOOL=C:\Program Files (x86)\Inno Setup 5”
SET "VCDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC"


How to build
------------

$ cd <PGADMIN4_SRC>
$ Make.bat x86|amd64|clean

This will generate pgAdmin4<APP_RELEASE>.<minor><suffix>.exe in the 
PGADMIN4_SRC/dist
folder. The APP_RELEASE, minor and suffix version details will be extracted from
web/config.py and used to create the installer filename, for example:

pgadmin4-1.0.0-dev.exe

Side-by-side installations of APP_RELEASE versions of pgAdmin are allowed, so an
installation directory of:

"C:\Program Files (x86)\pgAdmin 4\" (for x86)

would actually install into

C:\Program Files (x86)\pgAdmin 4\<APP_RELEASE>

e.g.

"C:\Program Files (x86)\pgAdmin 4\v1\"
-- 
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to