Re: Patch for pgAdmin4 package on Mac OS X

From: Sandeep Thakkar <sandeep(dot)thakkar(at)enterprisedb(dot)com>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: Paresh More <paresh(dot)more(at)enterprisedb(dot)com>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>, Hamid Quddus <hamid(dot)quddus(at)enterprisedb(dot)com>
Subject: Re: Patch for pgAdmin4 package on Mac OS X
Date: 2016-05-17 12:13:42
Message-ID: CANFyU95zE9cqZubKiyaAgf_wy0tA5doS7To_qqWQ_+nwQqjcqg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

On Tue, May 17, 2016 at 4:52 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:

>
>
> On Tuesday, May 17, 2016, Sandeep Thakkar <
> sandeep(dot)thakkar(at)enterprisedb(dot)com> wrote:
>
>> Hi Dave
>>
>> I have fixed the issues. Attached is the updated patch.
>>
>> The docs are built as part of 'appbundle' target, there is no separate
>> target in Makefile for this. I observed that it requires the python modules
>> to get this built. We create virtual environment as a part of 'appbundle'
>> target because we do everything in a single script "build.sh". Hence,
>> right now I added doc build in the same build script.
>>
>
> Right - I was suggesting you create the 'docs' target, then use it.
>
>
Yes, I got that. I was talking from dependency perspective. Docs needs to
be built in the virtual environment as it needs some python modules for
building and App bundle should include the docs. So, docs will be built
before the app bundle, but it needs venv which is a part of the same script
(build.sh) that creates the bundle. So, I will have to split the build.sh
accordingly.

>
>> BTW, the online help returns me the following error now:
>> "The server encountered an internal error and was unable to complete your
>> request. Either the server is overloaded or there is an error in the
>> application." Since this is not 404, it means that it atleast got
>> index.html, right? May be this should be handled in the source code.
>>
>
> It works fine for me on my dev machines. If there's a problem, we need to
> diagnose it.
>
>
>>
>> Paresh is working on updating pgAdmin4.py to autocreate database
>> configuration if does not exist. He will share the patch.
>>
>> On Fri, May 13, 2016 at 6:41 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
>>
>>> On Fri, May 13, 2016 at 2:01 PM, Sandeep Thakkar
>>> <sandeep(dot)thakkar(at)enterprisedb(dot)com> wrote:
>>> > Thanks Dave.
>>> >
>>> > Please see inline.
>>> >
>>> > On Fri, May 6, 2016 at 9:03 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
>>> >>
>>> >> Hi
>>> >>
>>> >> Thanks. I've applied the path fix patch. The second one needs a little
>>> >> work - I've attached an updated version to work from:
>>> >>
>>> >> - I've updated the README, and some of the default values.
>>> >
>>> > OK. The default values of PGDIR and QTDIR set by you is different than
>>> mine.
>>> > I installed them through macports.
>>>
>>> Right. I went with the default directories from the original projects.
>>>
>>> >>
>>> >> - I've removed the file type registration for .sql files.
>>> >
>>> >
>>> > OK.
>>> >>
>>> >>
>>> >> - Should we note that the user may need to run in a virtualenv?
>>> >
>>> >
>>> > No, we bundle private environment, right?
>>>
>>> I meant "the user building the package", not the end user.
>>>
>>> >> - Please move build-mac.sh to pkg/build.sh, and create a target in
>>> >> /Makefile to
>>> >> execute it, e.g. "make appbundle"
>>> >
>>> >
>>> > Sure. You mean move to pkg/mac/build.sh, right?
>>>
>>> Yes :-)
>>>
>>> >> - Extend the Makefile to add a "clean-appbundle" target, which should
>>> also
>>> >> be
>>> >> called by the "clean" target.
>>> >>
>>> > OK.
>>> >>
>>> >> - At present, it is bundling my pre-existing configuration database.
>>> It
>>> >> *must*
>>> >> create a new one and bundle that, without touching the existing one
>>> (I
>>> >> guess
>>> >> that may require a new command line option for setup.py).
>>> >
>>> >
>>> > No, it's not bundling the pgadmin4.db at all, I skipped it :). Paresh
>>> is
>>> > working on this.
>>>
>>> Oh - in that case it used my existing one. Which of course, it should
>>> not overwrite if already present (which reminds me - adding a todo
>>> item to auto-upgrade the database if needed on first run).
>>>
>>> >> - The online help is broken (are you building it)? I suggest adding a
>>> >> top-level
>>> >> Makefile target to do so.
>>> >>
>>> > Sorry, which online help?
>>>
>>> That which can be found in $SRC/doc - currently only for en_US. At
>>> present it's built with "cd doc/en_US && make -f Makefile.sphinx
>>> html", but I think we should have a top-level target to call that for
>>> us.
>>>
>>> The help can then be accessed from Help -> Online Help within pgAdmin.
>>> Obviously the files need to be put in the right place in the app
>>> bundle.
>>>
>>> >> - Working directories should be added to /.gitignore. Please ensure
>>> they
>>> >> don't
>>> >> clash with those used by pip (and ideally are in one place, e.g.
>>> >> mac-build/).
>>> >>
>>> > OK.
>>> >
>>> >>
>>> >> - I saw various errors in the build output, though the resulting DMG
>>> >> seemed to
>>> >> work fine;
>>> >>
>>> > Yeah, because I had libpq.dylib present in $PGDIR/ and may be yours
>>> present
>>> > in $PGDIR/lib/. I will be using the default values suggested by you
>>> and fix
>>> > this. Thanks!
>>>
>>> Right - please make sure the build fails in cases like this too.
>>>
>>> Thanks.
>>>
>>> >> ...
>>> >> cp: /usr/local/pgsql/libpq.5.dylib: No such file or directory
>>> >> libpq.5.dylib not found in /usr/local/pgsql
>>> >> Completing app: /Users/dpage/git/pgadmin4/pgAdmin4.app
>>> >> ...
>>> >>
>>> >> ...
>>> >> App: pgAdmin4.app: Post-processing: .//Contents/MacOS/pgAdmin4
>>> >> App: pgAdmin4.app: Adding symlink: QtWebKitWidgets (because of:
>>> >> .//Contents/MacOS/pgAdmin4)
>>> >> cp:
>>> >>
>>> @rpath/QtWebKitWidgets.framework/Versions/5/../../../QtWebKitWidgets.framework:
>>> >> No such file or directory
>>> >> chmod:
>>> >>
>>> Contents/Frameworks/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets:
>>> >> No such file or directory
>>> >> Rewriting ID in
>>> >>
>>> Contents/Frameworks/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets
>>> >> to QtWebKitWidgets
>>> >> error:
>>> >>
>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool:
>>> >> can't open file:
>>> >>
>>> Contents/Frameworks/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets
>>> >> (No such file or directory)
>>> >> Cleaning up
>>> >> ...
>>> >>
>>> >>
>>> >> On Mon, Apr 18, 2016 at 1:25 PM, Sandeep Thakkar
>>> >> <sandeep(dot)thakkar(at)enterprisedb(dot)com> wrote:
>>> >> > Hi Team, Dave,
>>> >> >
>>> >> > Attached herewith are two patches.
>>> >> >
>>> >> > pgadmin4-mac-bundle.patch - This includes scripts to build Mac app
>>> >> > bundle
>>> >> > and DMG for pgAdmin4. This is the tree of the generated app bundle:
>>> >> >
>>> >> > ----
>>> >> > $ find pgAdmin4.app/ -maxdepth 3 -type d
>>> >> > pgAdmin4.app/
>>> >> > pgAdmin4.app//ContentspgAdmin4.app//Contents/Frameworks
>>> >> > pgAdmin4.app//Contents/Frameworks/Python.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtCore.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtDBus.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtGui.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtMultimedia.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtMultimediaWidgets.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtNetwork.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtOpenGL.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtPositioning.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtPrintSupport.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtQml.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtQuick.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtSensors.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtSql.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtWebChannel.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtWebKit.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtWebKitWidgets.framework
>>> >> > pgAdmin4.app//Contents/Frameworks/QtWidgets.framework
>>> >> > pgAdmin4.app//Contents/MacOS
>>> >> > pgAdmin4.app//Contents/PlugIns
>>> >> > pgAdmin4.app//Contents/PlugIns/platforms
>>> >> > pgAdmin4.app//Contents/Resources
>>> >> > pgAdmin4.app//Contents/Resources/venv
>>> >> > pgAdmin4.app//Contents/Resources/web
>>> >> > ---
>>> >> >
>>> >> > pgadmin4-fixpath-mac.patch - This is for runtime/Server.cpp to fix
>>> the
>>> >> > path
>>> >> > where the runtime looks for web application path in app bundle.
>>> >> >
>>> >> >
>>> >> > Kindly review and suggest the changes required. Thanks.
>>> >> >
>>> >> > --
>>> >> > Sandeep Thakkar
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Dave Page
>>> >> Blog: http://pgsnake.blogspot.com
>>> >> Twitter: @pgsnake
>>> >>
>>> >> EnterpriseDB UK: http://www.enterprisedb.com
>>> >> The Enterprise PostgreSQL Company
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > Sandeep Thakkar
>>> >
>>>
>>>
>>>
>>> --
>>> Dave Page
>>> Blog: http://pgsnake.blogspot.com
>>> Twitter: @pgsnake
>>>
>>> EnterpriseDB UK: http://www.enterprisedb.com
>>> The Enterprise PostgreSQL Company
>>>
>>
>>
>>
>> --
>> Sandeep Thakkar
>>
>>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
>

--
Sandeep Thakkar

In response to

Browse pgadmin-hackers by date

  From Date Subject
Next Message Murtuza Zabuawala 2016-05-17 13:16:41 Re: Stalled post to pgadmin-hackers
Previous Message Dave Page 2016-05-17 11:22:57 Re: Patch for pgAdmin4 package on Mac OS X