Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b7kI4-00045r-LR for pgadmin-hackers@arkaria.postgresql.org; Tue, 31 May 2016 14:05:04 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1b7kI4-0007tA-7n for pgadmin-hackers@arkaria.postgresql.org; Tue, 31 May 2016 14:05:04 +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 1b7kI2-0007t0-Tl for pgadmin-hackers@postgresql.org; Tue, 31 May 2016 14:05:03 +0000 Received: from mail-io0-x229.google.com ([2607:f8b0:4001:c06::229]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1b7kHu-0002cZ-Eq for pgadmin-hackers@postgresql.org; Tue, 31 May 2016 14:05:02 +0000 Received: by mail-io0-x229.google.com with SMTP id f8so134269904ioe.3 for ; Tue, 31 May 2016 07:04: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=13t3OsLs46wJmKBQnW1GXzpavg64+l7+GUo8Ueq9vVQ=; b=FLQeAjWq32lW4rNpK/xSJRxYd8Jqrw+K2CjniznrXJjLIgxNFAC7RIYKsSeBnu9jk+ 5Pjc0Ci82kMsI/ke+G+IS/IJ1RLuRBJvYOr3OgBZlxVyiEFGowdw1FDCuvdjnLm/MB9u DyJpuvekycyuUJQ5exDeOojZkviFuqsyZ0n0z8qpWz7zWRyDYLo9Lajx4NZ/zRuwStXD GEcg0T/9j/631KQ63sVl0GkVoMSC56Q4BzC+9rSL3jHQcArLYjpvCWDh19wqxy85vBVk P4aI24obGpTmS3zmeMq+k9awLpr5frM5Soiag4qUDTQM/XrvUwG7f1zCRRDsNJrRnU3/ bTbw== 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=13t3OsLs46wJmKBQnW1GXzpavg64+l7+GUo8Ueq9vVQ=; b=d3nyiiUZMGbVOiChGKn5k75dQDQhoUqPCNpnXWZleGuGBJRgcFRT7EabUNmRoyHJ/L ME8rliil7UF+n+0Y6JPhVT7g8FDvPmAqQPuDNeftkWAi2aqFpBira5vgLJytercxmIBc cdIrnYdmuBq1f6YKmtqSUhKYzoUHOGoBmX/7lyGZbIEX1sEsR7K5cA18Zkr4T63fgYp6 hfQPNLhaEPSjhNK80vNimTwU/ysYM415tm4w6KTpSItKU6enwaJTXC+Rq6CAB8um2YF/ /14zX4+8HPULvEG7cfVprOxZ7avPFOu/rIo++j3xUNMZe/0LUZBW2lYLAZDYa+p1ewn5 dKBQ== X-Gm-Message-State: ALyK8tJsnLw9wfND5IG0AQqqNIwIYu52KuNn6K54gYb0k1LQjhEFbepe+KvdvyJhqeqk0gfBuXrHL4y5OjIRtw== MIME-Version: 1.0 X-Received: by 10.107.140.132 with SMTP id o126mr26807595iod.70.1464703492207; Tue, 31 May 2016 07:04:52 -0700 (PDT) Received: by 10.64.236.101 with HTTP; Tue, 31 May 2016 07:04:51 -0700 (PDT) In-Reply-To: References: Date: Tue, 31 May 2016 15:04:51 +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/mixed; boundary=94eb2c05aea25b8043053423dbcb 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 --94eb2c05aea25b8043053423dbcb Content-Type: multipart/alternative; boundary=94eb2c05aea25b803e053423dbc9 --94eb2c05aea25b803e053423dbc9 Content-Type: text/plain; charset=UTF-8 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 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.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 (added the >> v, as 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 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 (added >>> the v, as 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 --94eb2c05aea25b803e053423dbc9 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi

This still doesn't build for me:=

> make x86
...
...

Generating Code...
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDO= WS "/MANIFESTDEPENDENCY:type=3D'win32' name=3D'M
icrosoft.Windows.Common-Controls' version=3D'6.0.0.0' publicKe= yToken=3D'6595b64144ccf1df' language=3D'*' processorArchite= cture
=3D'*'" /MANIFEST:embed /OUT:release\pgAdmin4.= exe @C:\Users\dpage\AppData\Local\Temp\nm5F51.tmp
Qt5Core.lib(Qt5= Core.dll) : fatal error LNK1112: module machine type 'x64' conflict= s with target machine type 'X86'
NMAKE : fatal error U107= 7: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\li= nk.EXE"' : return code '0x458'

St= op.
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\\Reso= urces\\pgAdmin4.ico': No such file or directory
"C:\Prog= ram Files (x86)\Inno Setup 5\ISCC.exe" /q "C:\Users\dpage\Documen= ts\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 differen= t QTDIR, this time a 32 bit one:

=C2=A0 =C2= =A0 =C2=A0 =C2=A0 link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBS= YSTEM:WINDOWS "/MANIFESTDEPENDENCY:type=3D'win32' name=3D'= M
icrosoft.Windows.Common-Controls' version=3D'6.0.0.0= 9; publicKeyToken=3D'6595b64144ccf1df' language=3D'*' proce= ssorArchitecture
=3D'*'" /MANIFEST /MANIFESTFILE:rel= ease\pgAdmin4.exe.embed.manifest /OUT:release\pgAdmin4.exe @C:\Users\dpage\= AppData\Loca
l\Temp\nm1C68.tmp
qtmain.lib(qtmain_win.ob= j) : error LNK2038: mismatch detected for '_MSC_VER': value '17= 00' doesn't match value '1800' in
=C2=A0pgAdmin4.= obj
release\pgAdmin4.exe : fatal error LNK1319: 1 mismatches dete= cted
NMAKE : fatal error U1077: '"C:\Program Files (x86)= \Microsoft Visual Studio 12.0\VC\BIN\link.EXE"' : return code '= ;0x527'

Stop.
NMAKE : fatal error U1= 077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\= nmake.exe"' : return code '0x2'
Stop.
=
Aborting build!
"Preparing Creation of window= s installer"
cp: cannot create regular file `C:\\Users\\dpag= e\\Documents\\pgadmin4\\pkg\\win32\\win-build\\/C:\\Users\\dpage\\Documen
ts\\pgadmin4\\pkg\\win32\\Resources\\pgAdmin4.ico': No such fi= le or directory
"C:\Program Files (x86)\Inno Setup 5\ISCC.ex= e" /q "C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss&= quot;
Error on line 101 in C:\Users\dpage\Documents\pgadmin4\pkg\= win32\installer.iss: Column 3:
Semicolon (';') expected.<= /div>
Compile aborted.

If I then try a 6= 4bit build:

> make amd64
...
...

Generating Code...
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:W= INDOWS "/MANIFESTDEPENDENCY:type=3D'win32' name=3D'M
=
icrosoft.Windows.Common-Controls' version=3D= '6.0.0.0' publicKeyToken=3D'6595b64144ccf1df' language=3D&#= 39;*' processorArchitecture
=3D'*&#= 39;" /MANIFEST:embed /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData= \Local\Temp\nmF7B9.tmp
Server.obj : error L= NK2019: unresolved external symbol __imp_PyString_FromString referenced in = function "public: __cdecl
=C2=A0Server= ::Server(unsigned short)" (??0Server@@QEAA@G@Z)
Server.obj : error LNK2019: unresolved external symbol __imp_PyLi= st_Append referenced in function "public: __cdecl Serve
r::Server(unsigned short)" (??0Server@@QEAA@G@Z)
Server.obj : error LNK2019: unresolved externa= l symbol __imp_PyFile_FromString referenced in function "protected: vi= rtua
l void __cdecl Server::run(void)"= (?run@Server@@MEAAXXZ)
Server.obj : error = LNK2019: unresolved external symbol __imp_PyFile_AsFile referenced in funct= ion "protected: virtual vo
id __cdecl = Server::run(void)" (?run@Server@@MEAAXXZ)
Server.obj : error LNK2019: unresolved external symbol __imp_Py_SetProg= ramName 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 Ser= ve
r::Server(unsigned short)" (??0Serv= er@@QEAA@G@Z)
Server.obj : error LNK2019: u= nresolved external symbol __imp_Py_Finalize referenced in function "pu= blic: virtual __cdecl
=C2=A0Server::~Server= (void)" (??1Server@@UEAA@XZ)
Server.ob= j : error LNK2019: unresolved external symbol __imp_PyRun_SimpleStringFlags= referenced in function "protected:
vi= rtual void __cdecl Server::run(void)" (?run@Server@@MEAAXXZ)
Server.obj : error LNK2019: unresolved external symb= ol __imp_PyRun_SimpleFileExFlags referenced in function "protected:
virtual void __cdecl Server::run(void)" = (?run@Server@@MEAAXXZ)
Server.obj : error L= NK2019: unresolved external symbol __imp_PySys_GetObject referenced in func= tion "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 unresolv= ed externals
NMAKE : fatal error U1077: = 9;"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\li= nk.EXE"' : return code '
0x460= '
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Vis= ual 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\\pga= dmin4\\pkg\\win32\\win-build\\/C:\\Users\\dpage\\Documen
ts\\pgadmin4\\pkg\\win32\\Resources\\pgAdmin4.ico': No su= ch file or directory
"C:\Program Files= (x86)\Inno Setup 5\ISCC.exe" /q "C:\Users\dpage\Documents\pgadmi= n4\pkg\win32\installer.iss"
Error on l= ine 101 in C:\Users\dpage\Documents\pgadmin4\pkg\win32\installer.iss: Colum= n 3:
Semicolon (';') expected.
Compile aborted.On Mon, May 30,=C2=A0

So, specific is= sues seen:

- At least one of the default paths in make.bat is wrong - the one con= taining Syswow64 should contain a 32 bit library.

- The 32 bit paths will certain= ly be wrong on 32 bit Windows.

- Make.bat does not properly exit following errors= .

- Er= ror handlers like=C2=A0setPythonDetails don't have appropriate names (m= aybe err_handle_python ?)

- Error handlers like=C2=A0setPythonDetails display mul= tiple errors at once, only one of may have been the actual problem.

- Using SET i= n 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 installe= d. Such issues should be checked for and warned about (e.g. if there is a 3= 2/64 bit mismatch).

- Shouldn't it be PGDIR, not PG_PATH? That's what I s= ee 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 th= e 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 ' = =C2=A0 =C2=A0' last time.

- %wd is used in some places, %WD in others. Simila= r, 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 up= date attached for review and further improvement.

2016 at 7:40 AM, Paresh More <paresh.more@enterprisedb.com> wrote:
Hello Dave,

Following things ar= e also fixed in the patch as per discussed with sandeep.

- added "MINIFY_HTML =3D False= " to config_local.py=C2=A0
- win-build removed following a successful build

Installer download link is:
https://uploads.enterprisedb= .com/download.php?file=3D3d9f8c2458e27a5a34ba8e942687f55f


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 u= sage is change to=C2=A0

Make.bat x86 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= // It would generated 32 bit installer
Make.bat adm64 =C2=A0 =C2=A0 // would generated 64 bit installer
Make.bat clean =C2=A0 =C2=A0 =C2=A0 // Will=C2= =A0cleanup all output it creates in normal= mode

Now Make.bat would generated 32/64 installers as per selecte= d.

- Avoids trashi= ng a pre-existing config_local.py, and creates a very simple one in the sta= ging 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> (adde= d the v, as <major> on it's own looks weird)
DONE - Based on 32 bit or 64 bit it would install a= ccordingly =C2=A0

- Make.bat sho= uld take a "clean" parameter, to cleanup all output it creates in= normal mode.
D= ONE

- The package name in the installer shou= ld be set from config.py as the version is.
DONE

=C2=A0 psycopg2 issue is r= esolved.
=C2=A0=C2=A0
- As far as I can see, the Helpfiles are not built or bund= led (talk to Sandeep about this)
DONE - Helpfil= es are added to installer

- No Start Menu ic= on is created.
DONE

- Why i= s 3rd_party_licences.txt included? We don't need that.
Removed it is not required

- pkg/win32/inst= aller.iss should be added to a .gitignore file.
DONE
=

- SplashScreen.bmp doesn't seem to be used (t= hough it is referenced from the installer config file.
Spl= ashscreen 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-f= ix release, and 2.0 to be the next major version.
DONE

- Any pre-existing pgadmin4.db is be= ing 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 update= d Patch.


On Thu, May 26, 2016 at 7:13 PM, Dave Pag= e <dpage@pgadmin.org> wrote:
Hi

On Fri, May 20, 2016 at 9:33 AM, Paresh More <paresh.more@ente= rprisedb.com> wrote:
Hel= lo Dave.

Attached are two patch for pgAdmin4-windows=C2= =A0

pgAdmin4_createDB.pa= tch
- patch for= =C2=A0pgAdmin4.py to autocreate database configuration if does not exist.= =C2=A0
- Now pgadmin.db would be not be=C2=A0bundled= =C2=A0with installer, it would be created if pgAdmin4.py is executed for th= e first time.

<= div>This is committed.
=C2=A0

pgAdmin4_windows.patch
- Environment variables once set will over ride the existing script v= ariables.
- Issue related to path with quotes are removed.
<= div>- New Readme.txt is added.
- Modified Error reporting.
<= div>- 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:

- Avo= ids trashing a pre-existing config_local.py, and creates a very simple one = in the staging directory.

- Various tidy-ups of Ma= ke.bat.

- Change the default path to %ProgramFiles= %\pgAdmin 4\v<major> (added the v, as <major> on it's own l= ooks weird)

Please update further to address the f= ollowing issues. I need this completed ASAP, thanks:

- Make.bat should take a "clean" parameter, to cleanup al= l 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:

= =C2=A0 error: [Error 183] Cannot create a file when that file already exist= s: 'build\\bdist.win32\\wheel\\importlib-1.0.3.data\\..'
=
=C2=A0 ----------------------------------------
= =C2=A0 Failed building wheel for importlib
=C2=A0=C2=A0
- And the following error:

=C2=A0 C:\Users\dpage\= AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\li= nk.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\python27\Libs /LIBPATH:c:\u= sers\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 /LI= BPATH: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\psyco= pg\pqpath.obj build\temp.win32-2.7\Release\psycopg\utils.obj build\temp.win= 32-2.7\Release\psycopg\bytes_format.obj build\temp.win32-2.7\Release\psycop= g\connection_int.obj build\temp.win32-2.7\Release\psycopg\connection_type.o= bj 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\diagn= ostics_type.obj build\temp.win32-2.7\Release\psycopg\error_type.obj build\t= emp.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.o= bj build\temp.win32-2.7\Release\psycopg\xid_type.obj build\temp.win32-2.7\R= elease\psycopg\adapter_asis.obj build\temp.win32-2.7\Release\psycopg\adapte= r_binary.obj build\temp.win32-2.7\Release\psycopg\adapter_datetime.obj buil= d\temp.win32-2.7\Release\psycopg\adapter_list.obj build\temp.win32-2.7\Rele= ase\psycopg\adapter_pboolean.obj build\temp.win32-2.7\Release\psycopg\adapt= er_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\Rel= ease\psycopg\adapter_qstring.obj build\temp.win32-2.7\Release\psycopg\micro= protocols.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\_psycop= g.lib /MANIFESTFILE:build\temp.win32-2.7\Release\psycopg\_psycopg.pyd.manif= est
=C2=A0 LINK : fatal error LNK1181: cannot open input file = 9;libpq.lib'
=C2=A0 error: command 'C:\\Users\\dpage\\App= Data\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\B= in\\link.exe' failed with exit status 1181

=C2= =A0 ----------------------------------------
=C2=A0 Failed buildi= ng wheel for psycopg2
=C2=A0=C2=A0
=C2=A0 %PGDIR% is se= t to: C:/Program Files (x86)/PostgreSQL/9.5, but note that /LIBPATH is incl= uding "C:/PROGRA~1/PG/pg95/lib".
=C2=A0=C2=A0
- As far as I can see, the Helpfiles are not built or bundled (talk to San= deep about this)

- No Start Menu icon is created.<= /div>

- Why is 3rd_party_licences.txt included? We don&#= 39;t need that.

- pkg/win32/installer.iss should b= e added to a .gitignore file.

- SplashScreen.bmp d= oesn't seem to be used (though it is referenced from the installer conf= ig file.

- Running the app fails with the followin= g (I suspect because of the psycopg2 issue above):

---------------------------
Setup
--------------------= -------
Unable to execute file:
C:\Program Files (x86)\= pgAdmin 4\v1\runtime\pgAdmin4.exe

CreateProcess fa= iled; code 2.
The system cannot find the file specified.
---------------------------
OK =C2=A0=C2=A0
---------= ------------------

The only file in that directory= is python27.dll. This is probably caused by this:

fatal error LNK1112: module machine type 'x64' conflicts with targ= et machine type 'X86'

- The Add/Remove Pro= grams 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.

<= /div>
- Any pre-existing *.pyc files are being shipped.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twi= tter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise Pos= tgreSQL Company



-= -

Thanks & Regards

Paresh More

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

Pune, India.




--

Thanks & Regards

Paresh More

3D"NEW-=

Pune, India.




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

Enterpri= seDB UK: http://w= ww.enterprisedb.com
The Enterprise PostgreSQL Company
--94eb2c05aea25b803e053423dbc9-- --94eb2c05aea25b8043053423dbcb Content-Type: text/plain; charset=UTF-8; name="README.txt" Content-Disposition: attachment; filename="README.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iovimlna0 77u/cGdBZG1pbiA0DQo9PT09PT09PT0NCg0KUHJlcmVxdWlzaXRlcw0KLS0t LS0tLS0tLS0tLQ0KDQpUbyBnZW5lcmF0ZSBhIHBnQWRtaW4gNCBpbnN0YWxs ZXIgZm9yIFdpbmRvd3MgYml0LCB0aGUgZm9sbG93aW5nIHBhY2thZ2VzIA0K bXVzdCBiZSBpbnN0YWxsZWQ6DQoNCi0gUVQgNC42IG9yIGFib3ZlIChvbGRl ciB2ZXJzaW9ucyBtYXkgd29yaywgYnV0IGhhdmVuJ3QgYmVlbiB0ZXN0ZWQp Lg0KLSBQeXRob24gMi42IG9yIGFib3ZlLg0KLSBJbm5vIFRvb2wgVmVyc2lv biA1LjUuOCBhbmQgQWJvdmUNCi0gTWljcm9zb2Z0IHZpc3VhbCBzdHVkaW8g KDIwMTMpDQoNClRoZSBmb2xsb3dpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVz IG1heSBiZSBkZWZpbmVkIHRvIG92ZXJyaWRlIGRlZmF1bHRzIGluIHRoZQ0K YnVpbGQgc2NyaXB0IChNYWtlLmJhdCk6DQoNCklOTk9UT09MLCBWQ0RJUiwg UFlUSE9OX0hPTUUsIFBZVEhPTl9ETEwsIFFURElSLCBQR19QQVRIDQoNClRo ZSBkZWZhdWx0IHNldHRpbmdzIGFyZSBlcXVpdmFsZW50IHRvIChvbiB4ODYp Og0KDQpTRVQgIlBZVEhPTl9IT01FPUM6XFB5dGhvbjI3Ig0KU0VUICJQWVRI T05fRExMPUM6XFdpbmRvd3NcU3lzdGVtMzJccHl0aG9uMjcuZGxsIg0KU0VU ICJRVERJUj1DOlxRdFxRdDUuNS4xXDUuNVxtc3ZjMjAxMyINClNFVCAiUEdf UEFUSD1DOlxQcm9ncmFtIEZpbGVzICh4ODYpXFBvc3RncmVTUUxcOS41Ig0K DQpPciBvbiB4ODZfNjQ6DQoNClNFVCAiUFlUSE9OX0hPTUU9QzpcUHl0aG9u MjcteDY0Ig0KU0VUICJQWVRIT05fRExMPUM6XFdpbmRvd3NcU3lzV09XNjRc cHl0aG9uMjcuZGxsIg0KU0VUICJRVERJUj1DOlxRdC14NjRcUXQ1LjUuMVw1 LjVcbXN2YzIwMTMiDQpTRVQgIlBHX1BBVEg9QzpcUHJvZ3JhbSBGaWxlc1xQ b3N0Z3JlU1FMXDkuNSINCg0KUGx1cywgb24gZWl0aGVyIGFyY2hpdGVjdHVy ZToNCg0KU0VUICJJTk5PVE9PTD1DOlxQcm9ncmFtIEZpbGVzICh4ODYpXElu bm8gU2V0dXAgNeKAnQ0KU0VUICJWQ0RJUj1DOlxQcm9ncmFtIEZpbGVzICh4 ODYpXE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDEyLjBcVkMiDQoNCg0KSG93 IHRvIGJ1aWxkDQotLS0tLS0tLS0tLS0NCg0KJCBjZCA8UEdBRE1JTjRfU1JD Pg0KJCBNYWtlLmJhdCB4ODZ8YW1kNjR8Y2xlYW4NCg0KVGhpcyB3aWxsIGdl bmVyYXRlIHBnQWRtaW40PEFQUF9SRUxFQVNFPi48bWlub3I+PHN1ZmZpeD4u ZXhlIGluIHRoZSBQR0FETUlONF9TUkMvZGlzdA0KZm9sZGVyLiBUaGUgQVBQ X1JFTEVBU0UsIG1pbm9yIGFuZCBzdWZmaXggdmVyc2lvbiBkZXRhaWxzIHdp bGwgYmUgZXh0cmFjdGVkIGZyb20NCndlYi9jb25maWcucHkgYW5kIHVzZWQg dG8gY3JlYXRlIHRoZSBpbnN0YWxsZXIgZmlsZW5hbWUsIGZvciBleGFtcGxl Og0KDQpwZ2FkbWluNC0xLjAuMC1kZXYuZXhlDQoNClNpZGUtYnktc2lkZSBp bnN0YWxsYXRpb25zIG9mIEFQUF9SRUxFQVNFIHZlcnNpb25zIG9mIHBnQWRt aW4gYXJlIGFsbG93ZWQsIHNvIGFuDQppbnN0YWxsYXRpb24gZGlyZWN0b3J5 IG9mOg0KDQoiQzpcUHJvZ3JhbSBGaWxlcyAoeDg2KVxwZ0FkbWluIDRcIiAo Zm9yIHg4NikNCg0Kd291bGQgYWN0dWFsbHkgaW5zdGFsbCBpbnRvDQoNCkM6 XFByb2dyYW0gRmlsZXMgKHg4NilccGdBZG1pbiA0XDxBUFBfUkVMRUFTRT4N Cg0KZS5nLg0KDQoiQzpcUHJvZ3JhbSBGaWxlcyAoeDg2KVxwZ0FkbWluIDRc djFcIg0K --94eb2c05aea25b8043053423dbcb Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --94eb2c05aea25b8043053423dbcb--