Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aoGqO-0007h0-Om for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Apr 2016 20:48:01 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1aoGqN-0008Oe-W7 for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Apr 2016 20:48:00 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1aoGqN-0008OX-D9 for pgadmin-hackers@postgresql.org; Thu, 07 Apr 2016 20:47:59 +0000 Received: from mail-io0-x22b.google.com ([2607:f8b0:4001:c06::22b]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1aoGqI-0002YX-Tq for pgadmin-hackers@postgresql.org; Thu, 07 Apr 2016 20:47:58 +0000 Received: by mail-io0-x22b.google.com with SMTP id q128so108596564iof.3 for ; Thu, 07 Apr 2016 13:47:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=wRIvHkldaAkefNNBlzMrTB8sV28qZyznJBEw5Usf+sk=; b=SvJBIP7IQ7jF4XVeEVdKqOIYutgmY+SiTBFaeHpPXfRFBBLL3IRPmrsoYpeLE8yJJN dQhAtM23WpAQoE3gJW6a9oxb14N9t6xjTgoNu0U3obuhqqFzd609Qx7jhNO8FhVPqT9B +c6FPEJnE7Vn+2GuyKDnd7vsi5YDzqlkQB7Mtub6m1iv+NcJ4x8FOsc23loCKLoKBMHk 7FtyNDJv5AAj2r0mf6RgPJ9m2XcLb+xxXluoM/6l0EZsUz9QC9Ic4DEA/92Jqs3PE6tG 0moyR87QJCHu9JIXzRepiFDFEAR1oswcKkP3Ma8GppL+xB3l9u3FnLoiXJa5lOZTlTXH fEfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=wRIvHkldaAkefNNBlzMrTB8sV28qZyznJBEw5Usf+sk=; b=YXG2eH2orpqLcj1z4zUDDVyDaWqrQ9p5H20WfJbBuYTfKj8C2uMm7IJt/sxYnmgOER i+qrpBu9a0agO+AK2vPDzkVjVrL83PwPrWPFarJdswLl6x6TrRCKT+6dL70mQraTF4+6 tt4ERwk//4S2KCcgMDxcBzFh1israzD9ZA1NYD1sHvcPQIUX+tDhrnn1F23Yig9HhXDy W9txNNJIlK774S2FU3T3EAdrTxDO8iyVbyD6PRGYocrN+6uHcXzZwxJYoPnVH43TlYCh x5ykonZGgGL/E7ejT/yIOxvW+9s9OWHjgfv4PJW7jPs5UyfzYNv0A7uoWK6pLSc/gbgt dXCg== X-Gm-Message-State: AD7BkJJvJe2gxTixuMJ7d5teggKaZdFovaVHdocek+3QAQYUppVyoFhZ5hwFy3nHLER2p2iWLfMWwjeR9BE/7w== MIME-Version: 1.0 X-Received: by 10.107.56.196 with SMTP id f187mr5467380ioa.156.1460062073243; Thu, 07 Apr 2016 13:47:53 -0700 (PDT) Received: by 10.64.105.131 with HTTP; Thu, 7 Apr 2016 13:47:53 -0700 (PDT) In-Reply-To: References: Date: Thu, 7 Apr 2016 21:47:53 +0100 Message-ID: Subject: Re: PATCH: pgAdmin4 windows installer From: Dave Page To: Paresh More Cc: pgadmin-hackers , Sandeep Thakkar , Hamid Quddus Content-Type: multipart/alternative; boundary=001a114ab7b039f2af052feb31ee X-Pg-Spam-Score: -2.2 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a114ab7b039f2af052feb31ee Content-Type: text/plain; charset=UTF-8 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\., 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(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,class std::allocator > __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 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 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. > > -- > > Thanks & Regards > > *Paresh More* > > [image: NEW-EDB-logo-4c] > > Pune, India. > Cell : +919922000564 | www.enterprisedb.com > > > -- > 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 --001a114ab7b039f2af052feb31ee Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi

First round feedback (finally - sorr= y 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 t= ree (as the PIP package is)

- The version number s= hould be extracted from config.py, and used to create the installer filenam= e, i.e. pgadmin4-APP_VERSION.exe, which would currently make "pgadmin4= -1.0.0-dev.exe"

- Please add a README.rst fil= e to pkg/win32 that describes the required packages to setup a build enviro= nment, and (where non-obvious, e.g. setting up the compiler for PIP) includ= ing instructions on how to setup everything.

- The= user should never need to edit Make.bat, so any paths that might change sh= ould 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, wh= ere possible we should use variables standard to, or set by the other produ= cts.

- 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 install= er anyway.

- Side-by-side installations of major v= ersions of pgAdmin should be allowed, so an installation directory of "= ;C:\Program Files (x86)\pgAdmin 4\" should actually install into C:\Pr= ogram Files (x86)\pgAdmin 4\<major>.<minor>, e.g. "C:\Prog= ram Files (x86)\pgAdmin 4\1.0\"

- Revision ve= rsion updates should update the installed version, not install side-by-side= .=C2=A0 Care should be taken to ensure the Add/Remove Programs entries supp= ort both side-by-side installations and upgrades (e.g. 1.0.0 -> 1.0.1)

- The first screen of the installer shows the versi= on of pgAdmin as 1.0. It should be APP_VERSION from config.py.
- To aid with error handling, the script should check to ensur= e it can find required executables (e.g. qmake.exe, ISCC.exe) as a pre-flig= ht check.

- We need a simple way to create a 64bit= build.

- I'm not sure we should try to use an= y 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...
=C2=A0 =C2=A0 =C2=A0 =C2=A0 link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENT= AL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type=3D'win32' n= ame=3D'Microsoft.Windows.Common-Controls' version=3D'6.0.0.0= 9; publicKeyToken=3D'6595b64144ccf1df' language=3D'*' proce= ssorArchitecture=3D'*'" /MANIFEST /MANIFESTFILE:release\pgAdmi= n4.exe.embed.manifest /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Loc= al\Temp\nm196C.tmp
qtmain.lib(qtmain_win.obj) : error LNK2038: mi= smatch detected for '_MSC_VER': value '1700' doesn't ma= tch value '1600' in pgAdmin4.obj
qtmain.lib(qtmain_win.ob= j) : error LNK2019: unresolved external symbol "__declspec(dllimport) = void __cdecl std::_Xbad_alloc(void)" (__imp_?_Xbad_alloc@std@@YAXXZ) r= eferenced in function "char * __cdecl std::_Allocate<char>(unsig= ned int,char *)" (??$_Allocate@D@std@@YAPADIPAD@Z)
qtmain.li= b(qtmain_win.obj) : error LNK2019: unresolved external symbol "__decls= pec(dllimport) char const * __cdecl std::_Syserror_map(int)" (__imp_?_= Syserror_map@std@@YAPBDH@Z) referenced in function "public: virtual cl= ass std::error_condition __thiscall std::_System_error_category::default_er= ror_condition(int)const " (?default_error_condition@_System_error_cate= gory@std@@UBE?AVerror_condition@2@H@Z)
qtmain.lib(qtmain_win.obj)= : error LNK2019: unresolved external symbol "__declspec(dllimport) ch= ar const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@= @YAPBDH@Z) referenced in function "public: virtual class std::basic_st= ring<char,struct std::char_traits<char>,class std::allocator<ch= ar> > __thiscall std::_System_error_category::message(int)const "= ; (?message@_System_error_category@std@@UBE?AV?$basic_string@DU?$char_trait= s@D@std@@V?$allocator@D@2@@2@H@Z)
release\pgAdmin4.exe : fatal er= ror LNK1120: 3 unresolved externals
NMAKE : fatal error U1077: &#= 39;"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\link.EX= E"' : return code '0x460'

Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Micro= soft Visual Studio 12.0\VC\bin\nmake.exe"' : return code '0x2&= #39;
Stop.

Aborting build!

Thanks!

On Fri, Mar 25, 2016 at 11:40 AM, Paresh More <paresh.more@enterprisedb.com> wrote:
Hello Team,

Attached is t= he patch which will create windows 32 installer for pgAdmin4 (runtime mode)= for python 2.7 version.

This installer code has p= roblem 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 require= d.

Please also suggest whether we should go with 2= .5.2(psycopg2) or with the latest version.

--

Thanks & Regards

Paresh More

3D"NEW-EDB-logo-4c"

Pune, India.



--
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: @pgsna= ke

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Co= mpany
--001a114ab7b039f2af052feb31ee--