Subject: Running pgadmin4 as desktop application

From: Devrim Gündüz <[email-masked]>
Date: Thu, 06 Oct 2016 13:25:06 +0300

Hi,

Can you please clarify how to start pgadmin4 in desktop application mode? I
read

https://www.pgadmin.org/docs4/dev/desktop_deployment.html

but when I run 

/usr/pgadmin4-1.0/runtime/pgAdmin4 (installed via community RPMs), I get:

"
An error occurred initialising the application server:
Failed to locate pgAdmin4.py, terminating server thread."

(as reported 2 days ago on the list), followed by a segfault. There is an ini
file at the same directory, with contents like this:

$ cat /usr/pgadmin4-1.0/runtime/pgAdmin4.ini 

[General]
ApplicationPath=/usr/lib/python3.5/site-packages/pgadmin4-web
PythonPath=

Can you please give me a clue so that I can fix the packaging?

Regards,

-- 
Devrim GÜNDÜZ
EnterpriseDB: http://www.enterprisedb.com
PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer
Twitter: @DevrimGunduz , @DevrimGunduzTR

---

From: Dave Page <[email-masked]>
Date: Thu, 6 Oct 2016 13:42:16 +0100

Hi

> Can you please give me a clue so that I can fix the packaging?

The global config file that Qt will read by default seems to be
"/etc/pgAdmin Development Team/pgAdmin 4.conf".

I may change that for 1.1 to use a less obnoxious path. The contents
of it seem to need to be:

[General]
ApplicationPath=../../../../usr/lib/python2.7/site-packages/pgadmin4-web/
PythonPath="/usr/lib64/python2.7/site-packages/;/usr/lib/python2.7/site-packages/"

The ApplicationPath is the directory containing pgAdmin4.py. Due to a
bugette in the way the runtime works, it needs to be relative to the
location of the runtime, hence all the back-tracking. The PythonPath
needs to include both the 32 and 64 bit directories, as it seems that
some of the Python modules end up in each.

That was enough to get it to start for me.

Then, we run into the tricky issues, where you may have to deal with
conflicts between web and desktop mode. In our other installers, we
ship a blank config_local.py file, with a simple comment at the top
telling the user they can customise any settings in that file. For web
users, we don't want that, as it's used as a security mechanism
(startup will fail if it's not present, and tell the user they must
set some security-critical options). Those options don't matter in
desktop mode, hence why we pre-write the file.

Perhaps the way around that is to have the shortcut on the menu call a
script that can create config_local.py if needed? Though, I see you
already have config_distro.py forcing the user into desktop mode,
which is a potential conflict.

The other issue I see is with the docs:

1) The path in config_distro.py is
/usr/share/doc/pgadmin4-docs/en_US/html/. That directory doesn't exist
- if the docs are compiled in-situ, they'll end up in
/usr/share/doc/pgadmin4-docs/en_US/html/_build/html

2) The docs aren't built, so there is no _build/html directory.

3) The docs are integrated into the application so really should be a
dependency of the pgadmin4 RPM.

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

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

-- 
Sent via pgadmin-hackers mailing list ([email-masked])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

---

From: Devrim Gündüz <[email-masked]>
Date: Fri, 07 Oct 2016 15:05:20 +0300

Hi Dave,

> That was enough to get it to start for me.

This did not work for me :(

Cheers,

---

From: Dave Page <[email-masked]>
Date: Fri, 7 Oct 2016 13:44:16 +0100

> This did not work for me :(

How can I reproduce your setup? I testing on an existing CentOS 7 VM.

---

From: Devrim Gündüz <[email-masked]>
Date: Mon, 10 Oct 2016 10:51:44 +0300

Hi,

> How can I reproduce your setup? I testing on an existing CentOS 7 VM.

I'm testing on my Fedora 24 box. I'll switch to CentOS 7 and will let you know
soon.

Cheers,

---

From: Devrim Gündüz <[email-masked]>
Date: Mon, 10 Oct 2016 15:20:53 +0300

Hi Dave,

> That was enough to get it to start for me.

Ok, this worked on CentOS 7 box, but not on Fedora 24, which has QT5 and Python
3. Can you help me to debug this? The content of the file in Fedora 24 is:

$ cat /etc/pgAdmin\ Development\ Team/pgAdmin\ 4.conf 
[General]
ApplicationPath=../../../..//usr/lib/python3.5/site-packages/pgadmin4-web/
PythonPath="/usr/lib64/python3.5/site-packages; /usr/lib/python3.5/site-packages"

I'm still getting segfault, and:

Failed to locate pgAdmin4.py, terminating server thread.

> which is a potential conflict.

AFAICS, creating the file above helped to solve this issue, at least I can say
that both modes work on CentOS 7.

> 2) The docs aren't built, so there is no _build/html directory.

Actuallly they are installed via -docs subpackage, but I forgot to add this as
a dependency.

> dependency of the pgadmin4 RPM.

Ok, fixed. Pushed to 9.6 testing repo:

yum  --enablerepo pgdg96-updates-testing install pgadmin4 pgadmin4-web

(Packages will appear in next sync ;) )

Can you please test again?

Cheers,