Обсуждение: [pgadmin-hackers] Last few steps for pgadmin4 on RHEL 6
Hi, I spent a couple of hours this morning to build pgadmin4 dependencies on RHEL 6. I think I made them work, but pgadmin4 does not run (actually it runs, but the window comes empty). Here is the console output. Can you please take a look? [devrim@CentOS6x8664 ~]$ pgadmin4 Python path: "/usr/lib/python2.6/site-packages:/usr/lib64/python2.6/site-packages" Python Home: "" Webapp path: "/usr/lib/python2.6/site-packages/pgadmin4-web/pgAdmin4.py" /usr/lib/python2.6/site-packages/flask_security/forms.py:67: DeprecationWarning: Required is going away in WTForms 3.0, useDataRequired email_required = Required(message='EMAIL_NOT_PROVIDED') /usr/lib/python2.6/site-packages/flask_security/forms.py:69: DeprecationWarning: Required is going away in WTForms 3.0, useDataRequired password_required = Required(message='PASSWORD_NOT_PROVIDED') /usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuildusing libgmp >= 5 to avoid timing attack vulnerability. _warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning) loaded the Generic plugin can't make "generic.orientation" because no QAccelerometer sensors exist Exception in thread Thread-3: Traceback (most recent call last): File "/usr/lib64/python2.6/threading.py", line 532, in __bootstrap_inner self.run() File "/usr/lib64/python2.6/threading.py", line 484, in run self.__target(*self.__args, **self.__kwargs) File "/usr/lib64/python2.6/SocketServer.py", line 573, in process_request_thread self.handle_error(request, client_address) File "/usr/lib64/python2.6/SocketServer.py", line 570, in process_request_thread self.finish_request(request, client_address) File "/usr/lib64/python2.6/SocketServer.py", line 332, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib64/python2.6/SocketServer.py", line 627, in __init__ self.handle() File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 216, in handle rv = BaseHTTPRequestHandler.handle(self) File "/usr/lib64/python2.6/BaseHTTPServer.py", line 329, in handle self.handle_one_request() File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 251, in handle_one_request return self.run_wsgi() File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 193, in run_wsgi execute(self.server.app) File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 181, in execute application_iter = app(environ, start_response) File "/usr/lib/python2.6/site-packages/flask/app.py", line 2000, in __call__ return self.wsgi_app(environ, start_response) File "/usr/lib/python2.6/site-packages/flask/app.py", line 1991, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/lib/python2.6/site-packages/flask/app.py", line 1567, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/lib/python2.6/site-packages/flask/app.py", line 1988, in wsgi_app response = self.full_dispatch_request() File "/usr/lib/python2.6/site-packages/flask/app.py", line 1643, in full_dispatch_request response = self.process_response(response) File "/usr/lib/python2.6/site-packages/flask/app.py", line 1862, in process_response response = handler(response) File "/usr/lib/python2.6/site-packages/flask_htmlmin.py", line 27, in response_minify remove_comments=True, reduce_empty_attributes=True, remove_optional_attribute_quotes=False) File "/usr/lib/python2.6/site-packages/htmlmin/main.py", line 98, in minify minifier.feed(input) File "/usr/lib64/python2.6/HTMLParser.py", line 108, in feed self.goahead(0) File "/usr/lib64/python2.6/HTMLParser.py", line 152, in goahead k = self.parse_comment(i) File "/usr/lib64/python2.6/markupbase.py", line 174, in parse_comment self.handle_comment(rawdata[i+4: j]) File "/usr/lib/python2.6/site-packages/htmlmin/parser.py", line 281, in handle_comment data[1:] if data[0] == '!' else data)) ValueError: zero length field name in format If you want to test it yourself, the RPMs will be available in 9.6 *testing* repo in next 50 mins. Regards, -- Devrim Gündüz EnterpriseDB: http://www.enterprisedb.com PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer Twitter: @DevrimGunduz , @DevrimGunduzTR
Вложения
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK:http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Hi,
I spent a couple of hours this morning to build pgadmin4 dependencies on RHEL
6. I think I made them work, but pgadmin4 does not run (actually it runs, but
the window comes empty). Here is the console output. Can you please take a
look?
[devrim@CentOS6x8664 ~]$ pgadmin4
Python path: "/usr/lib/python2.6/site-packages:/usr/lib64/python2.6/site-packages"
Python Home: ""
Webapp path: "/usr/lib/python2.6/site-packages/pgadmin4-web/pgAdmin4.py"
/usr/lib/python2.6/site-packages/flask_security/forms.py:67: DeprecationWarning: Required is going away in WTForms 3.0, use DataRequired
email_required = Required(message='EMAIL_NOT_PROVIDED')
/usr/lib/python2.6/site-packages/flask_security/forms.py:69: DeprecationWarning: Required is going away in WTForms 3.0, use DataRequired
password_required = Required(message='PASSWORD_NOT_PROVIDED')
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
_warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
loaded the Generic plugin
can't make "generic.orientation" because no QAccelerometer sensors exist
Exception in thread Thread-3:
Traceback (most recent call last):
File "/usr/lib64/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/usr/lib64/python2.6/threading.py", line 484, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib64/python2.6/SocketServer.py", line 573, in process_request_thread
self.handle_error(request, client_address)
File "/usr/lib64/python2.6/SocketServer.py", line 570, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib64/python2.6/SocketServer.py", line 332, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib64/python2.6/SocketServer.py", line 627, in __init__
self.handle()
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 216, in handle
rv = BaseHTTPRequestHandler.handle(self)
File "/usr/lib64/python2.6/BaseHTTPServer.py", line 329, in handle
self.handle_one_request()
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 251, in handle_one_request
return self.run_wsgi()
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 193, in run_wsgi
execute(self.server.app)
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 181, in execute
application_iter = app(environ, start_response)
File "/usr/lib/python2.6/site-packages/flask/app.py", line 2000, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/lib/python2.6/site-packages/flask/app.py", line 1991, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/usr/lib/python2.6/site-packages/flask/app.py", line 1567, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/lib/python2.6/site-packages/flask/app.py", line 1988, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python2.6/site-packages/flask/app.py", line 1643, in full_dispatch_request
response = self.process_response(response)
File "/usr/lib/python2.6/site-packages/flask/app.py", line 1862, in process_response
response = handler(response)
File "/usr/lib/python2.6/site-packages/flask_htmlmin.py", line 27, in response_minify
remove_comments=True, reduce_empty_attributes=True, remove_optional_attribute_quotes=False)
File "/usr/lib/python2.6/site-packages/htmlmin/main.py", line 98, in minify
minifier.feed(input)
File "/usr/lib64/python2.6/HTMLParser.py", line 108, in feed
self.goahead(0)
File "/usr/lib64/python2.6/HTMLParser.py", line 152, in goahead
k = self.parse_comment(i)
File "/usr/lib64/python2.6/markupbase.py", line 174, in parse_comment
self.handle_comment(rawdata[i+4: j])
File "/usr/lib/python2.6/site-packages/htmlmin/parser.py", line 281, in handle_comment
data[1:] if data[0] == '!' else data))
ValueError: zero length field name in format
If you want to test it yourself, the RPMs will be available in 9.6 *testing* repo in next 50 mins.
Regards,
--
Devrim Gündüz
EnterpriseDB: http://www.enterprisedb.com
PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer
Twitter: @DevrimGunduz , @DevrimGunduzTR
That one is easy, there's a setting in config.py to enable/disable HTML minimisation. Put that in config_distro.py and set it to False.
In 1.4, that'll happen automatically with Python 2.6.
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK:http://www.enterprisedb.com
The Enterprise PostgreSQL Company
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK:http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Hi,
I spent a couple of hours this morning to build pgadmin4 dependencies on RHEL
6. I think I made them work, but pgadmin4 does not run (actually it runs, but
the window comes empty). Here is the console output. Can you please take a
look?
[devrim@CentOS6x8664 ~]$ pgadmin4
Python path: "/usr/lib/python2.6/site-packages:/usr/lib64/python2.6/site-packages"
Python Home: ""
Webapp path: "/usr/lib/python2.6/site-packages/pgadmin4-web/pgAdmin4.py"
/usr/lib/python2.6/site-packages/flask_security/forms.py:67: DeprecationWarning: Required is going away in WTForms 3.0, use DataRequired
email_required = Required(message='EMAIL_NOT_PROVIDED')
/usr/lib/python2.6/site-packages/flask_security/forms.py:69: DeprecationWarning: Required is going away in WTForms 3.0, use DataRequired
password_required = Required(message='PASSWORD_NOT_PROVIDED')
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
_warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
loaded the Generic plugin
can't make "generic.orientation" because no QAccelerometer sensors exist
Exception in thread Thread-3:
Traceback (most recent call last):
File "/usr/lib64/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/usr/lib64/python2.6/threading.py", line 484, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib64/python2.6/SocketServer.py", line 573, in process_request_thread
self.handle_error(request, client_address)
File "/usr/lib64/python2.6/SocketServer.py", line 570, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib64/python2.6/SocketServer.py", line 332, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib64/python2.6/SocketServer.py", line 627, in __init__
self.handle()
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 216, in handle
rv = BaseHTTPRequestHandler.handle(self)
File "/usr/lib64/python2.6/BaseHTTPServer.py", line 329, in handle
self.handle_one_request()
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 251, in handle_one_request
return self.run_wsgi()
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 193, in run_wsgi
execute(self.server.app)
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 181, in execute
application_iter = app(environ, start_response)
File "/usr/lib/python2.6/site-packages/flask/app.py", line 2000, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/lib/python2.6/site-packages/flask/app.py", line 1991, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/usr/lib/python2.6/site-packages/flask/app.py", line 1567, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/lib/python2.6/site-packages/flask/app.py", line 1988, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python2.6/site-packages/flask/app.py", line 1643, in full_dispatch_request
response = self.process_response(response)
File "/usr/lib/python2.6/site-packages/flask/app.py", line 1862, in process_response
response = handler(response)
File "/usr/lib/python2.6/site-packages/flask_htmlmin.py", line 27, in response_minify
remove_comments=True, reduce_empty_attributes=True, remove_optional_attribute_quotes=False)
File "/usr/lib/python2.6/site-packages/htmlmin/main.py", line 98, in minify
minifier.feed(input)
File "/usr/lib64/python2.6/HTMLParser.py", line 108, in feed
self.goahead(0)
File "/usr/lib64/python2.6/HTMLParser.py", line 152, in goahead
k = self.parse_comment(i)
File "/usr/lib64/python2.6/markupbase.py", line 174, in parse_comment
self.handle_comment(rawdata[i+4: j])
File "/usr/lib/python2.6/site-packages/htmlmin/parser.py", line 281, in handle_comment
data[1:] if data[0] == '!' else data))
ValueError: zero length field name in format
If you want to test it yourself, the RPMs will be available in 9.6 *testing* repo in next 50 mins.
Regards,
--
Devrim Gündüz
EnterpriseDB: http://www.enterprisedb.com
PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer
Twitter: @DevrimGunduz , @DevrimGunduzTR
Hi Dave, On Thu, 2017-03-16 at 07:44 +0000, Dave Page wrote: > That one is easy, there's a setting in config.py to enable/disable HTML > minimisation. Put that in config_distro.py and set it to False. Thank you! 1.3-2 RPMs on RHEL 6 in 9.6 testing repo now builds and run on RHEL 6 (x86_64). 32-bit RPMs are due next week. However, I am not too excited about the current situation in the repo, as I updated some RHEL 6 packages (like -crypto, etc), which may mean breakage to some servers. I'll think about that for a while. > In 1.4, that'll happen automatically with Python 2.6. Great! Regards, -- Devrim Gündüz EnterpriseDB: http://www.enterprisedb.com PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer Twitter: @DevrimGunduz , @DevrimGunduzTR
Вложения
Hi On Thu, Mar 16, 2017 at 5:15 PM, Devrim Gündüz <devrim@gunduz.org> wrote: > > Hi Dave, > > On Thu, 2017-03-16 at 07:44 +0000, Dave Page wrote: >> That one is easy, there's a setting in config.py to enable/disable HTML >> minimisation. Put that in config_distro.py and set it to False. > > Thank you! 1.3-2 RPMs on RHEL 6 in 9.6 testing repo now builds and run on RHEL > 6 (x86_64). 32-bit RPMs are due next week. > > However, I am not too excited about the current situation in the repo, as I > updated some RHEL 6 packages (like -crypto, etc), which may mean breakage to > some servers. I'll think about that for a while. Oh, urgh. Can we create private versions of them? That's what we had to do with ICU for EPAS in EDB; we have an edb-icu package which uses the specific version we required. >> In 1.4, that'll happen automatically with Python 2.6. > > Great! > > Regards, > -- > Devrim Gündüz > EnterpriseDB: http://www.enterprisedb.com > PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer > Twitter: @DevrimGunduz , @DevrimGunduzTR -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Hi Dave, On Fri, 2017-03-17 at 08:57 +0000, Dave Page wrote: > > However, I am not too excited about the current situation in the repo, as I > > updated some RHEL 6 packages (like -crypto, etc), which may mean breakage > > to > > some servers. I'll think about that for a while. > > Oh, urgh. Can we create private versions of them? That's what we had > to do with ICU for EPAS in EDB; we have an edb-icu package which uses > the specific version we required. We *can*, but not sure it will work. Eventually it will overwrite to the same files (say, -crypto), and RPM will complain about conflicting packages -- or let me ask it the other way: Any chance to tell pgadmin4 to look at to "other" -crypto package content (say, pgadmin4-python-crypto) , instead of the OS supplied one? Regards, -- Devrim Gündüz EnterpriseDB: http://www.enterprisedb.com PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer Twitter: @DevrimGunduz , @DevrimGunduzTR
Вложения
On Fri, Mar 17, 2017 at 9:11 AM, Devrim Gündüz <devrim@gunduz.org> wrote: > > Hi Dave, > > On Fri, 2017-03-17 at 08:57 +0000, Dave Page wrote: >> > However, I am not too excited about the current situation in the repo, as I >> > updated some RHEL 6 packages (like -crypto, etc), which may mean breakage >> > to >> > some servers. I'll think about that for a while. >> >> Oh, urgh. Can we create private versions of them? That's what we had >> to do with ICU for EPAS in EDB; we have an edb-icu package which uses >> the specific version we required. > > We *can*, but not sure it will work. Eventually it will overwrite to the same > files (say, -crypto), and RPM will complain about conflicting packages -- or > let me ask it the other way: Any chance to tell pgadmin4 to look at to "other" > -crypto package content (say, pgadmin4-python-crypto) , instead of the OS > supplied one? Oh, it was python-crypto? I was thinking you meant libcrypto. Hmm. That might be tricky. It might work if you just install it into the web/ directory. Is the default version actually too old? It's quite possible it will work, but we just haven't tested back that far. The version numbers in requirements.txt are really just what we know works, rather than what actually will in many cases. -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Hi, On Fri, 2017-03-17 at 09:40 +0000, Dave Page wrote: > Hmm. That might be tricky. It might work if you just install it into > the web/ directory. If we can make sure that it works, I can rename all packages (like pgadmin4- python-crypto), edit spec files, install them under the web/ directory. This will prevent the breakage that I mentioned at the end of this email. > Is the default version actually too old? It is 2.0.1 on RHEL 6 (vs 2.6.1 on RHEL 7, which is the version that I also used in the PGDG updated packages), and I'm seeing 2.6.1 in the requirements.txt file. > It's quite possible it will work, but we just haven't tested back that far. > The version numbers in requirements.txt are really just what we know works, > rather than what actually will in many cases. Just a FYI -- this is the list of the packages that I either added to RHEL 6 (via PGDG repo, not EPEL), or updated to a new version: python-beautifulsoup4 python-blinker python-crypto python-dateutil python-fixtures python-flask python-flask-babel python-flask-gravatar python-flask-htmlmin python-flask-login python-flask-mail python-flask-principal python-flask-security python-flask-sqlalchemy python-flask-wtf python-html5lib python-htmlmin python-importlib python-itsdangerous python-jinja2 python-markupsafe python-mimeparse python-passlib python-pbr python-pyrsistent python-simplejson python-speaklater python-sqlalchemy python-sqlparse python-werkzeug python-wsgiref python-wtforms At this point, I'm seriously considering to invent another sub-repo, at least to host these python dependencies, if installing under web/ won't work. The Python packages are purely static, and won't be updated frequently enough. We can host the main pgadmin4 package in our repo, but then it will be users' responsibility to install the dependencies by using our repo, which may break their systems (or not, no idea) Regards, -- Devrim Gündüz EnterpriseDB: http://www.enterprisedb.com PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer Twitter: @DevrimGunduz , @DevrimGunduzTR
Вложения
On Sun, Mar 19, 2017 at 2:33 PM, Devrim Gündüz <devrim@gunduz.org> wrote:
--
Hi,
On Fri, 2017-03-17 at 09:40 +0000, Dave Page wrote:
> Hmm. That might be tricky. It might work if you just install it into
> the web/ directory.
If we can make sure that it works, I can rename all packages (like pgadmin4-
python-crypto), edit spec files, install them under the web/ directory. This
will prevent the breakage that I mentioned at the end of this email.
> Is the default version actually too old?
It is 2.0.1 on RHEL 6 (vs 2.6.1 on RHEL 7, which is the version that I also
used in the PGDG updated packages), and I'm seeing 2.6.1 in the
requirements.txt file.
> It's quite possible it will work, but we just haven't tested back that far.
> The version numbers in requirements.txt are really just what we know works,
> rather than what actually will in many cases.
Just a FYI -- this is the list of the packages that I either added to RHEL 6
(via PGDG repo, not EPEL), or updated to a new version:
python-beautifulsoup4
python-blinker
python-crypto
python-dateutil
python-fixtures
python-flask
python-flask-babel
python-flask-gravatar
python-flask-htmlmin
python-flask-login
python-flask-mail
python-flask-principal
python-flask-security
python-flask-sqlalchemy
python-flask-wtf
python-html5lib
python-htmlmin
python-importlib
python-itsdangerous
python-jinja2
python-markupsafe
python-mimeparse
python-passlib
python-pbr
python-pyrsistent
python-simplejson
python-speaklater
python-sqlalchemy
python-sqlparse
python-werkzeug
python-wsgiref
python-wtforms
At this point, I'm seriously considering to invent another sub-repo, at least
to host these python dependencies, if installing under web/ won't work. The
Python packages are purely static, and won't be updated frequently enough. We
can host the main pgadmin4 package in our repo, but then it will be users'
responsibility to install the dependencies by using our repo, which may break
their systems (or not, no idea)
Yikes. Yeah you definitely do *not* want to have new versions of all those packages show up on peoples systems by default, that'll break a whole lot of things.
I don't think keeping them in a separate repository is really going to work either -- it will still cause the breakage for anybody who wants to use pgadmin4.
The reasonable thing would be to install them locally in the pgadmin4 package (or in a pgadmin4-dependencies or whatever you want to call it), in a way that they are not used by any other software on the system. If that's not possible, I think you're just going to have to declare RHEL6 as unsupported for it. But surely most or all of that can run inside a virtualenv together with the pgadmin code, so I would be surprised if they cannot be installed locally.
Finally, I think you need to be careful about calling them "purely static". Several of those will need to be monitored for security updates and new versions pushed when those show up, if you end up bundling them. Especially important if pgadmin4 is used in server mode, but there's definitely things in there that would be critical to make sure they're updated for desktop mode as well.
On Sun, Mar 19, 2017 at 1:41 PM, Magnus Hagander <magnus@hagander.net> wrote: > > > On Sun, Mar 19, 2017 at 2:33 PM, Devrim Gündüz <devrim@gunduz.org> wrote: >> >> >> Hi, >> >> On Fri, 2017-03-17 at 09:40 +0000, Dave Page wrote: >> > Hmm. That might be tricky. It might work if you just install it into >> > the web/ directory. >> >> If we can make sure that it works, I can rename all packages (like >> pgadmin4- >> python-crypto), edit spec files, install them under the web/ directory. >> This >> will prevent the breakage that I mentioned at the end of this email. >> >> > Is the default version actually too old? >> >> It is 2.0.1 on RHEL 6 (vs 2.6.1 on RHEL 7, which is the version that I >> also >> used in the PGDG updated packages), and I'm seeing 2.6.1 in the >> requirements.txt file. >> >> > It's quite possible it will work, but we just haven't tested back that >> > far. >> > The version numbers in requirements.txt are really just what we know >> > works, >> > rather than what actually will in many cases. >> >> Just a FYI -- this is the list of the packages that I either added to RHEL >> 6 >> (via PGDG repo, not EPEL), or updated to a new version: >> >> python-beautifulsoup4 >> python-blinker >> python-crypto >> python-dateutil >> python-fixtures >> python-flask >> python-flask-babel >> python-flask-gravatar >> python-flask-htmlmin >> python-flask-login >> python-flask-mail >> python-flask-principal >> python-flask-security >> python-flask-sqlalchemy >> python-flask-wtf >> python-html5lib >> python-htmlmin >> python-importlib >> python-itsdangerous >> python-jinja2 >> python-markupsafe >> python-mimeparse >> python-passlib >> python-pbr >> python-pyrsistent >> python-simplejson >> python-speaklater >> python-sqlalchemy >> python-sqlparse >> python-werkzeug >> python-wsgiref >> python-wtforms >> >> At this point, I'm seriously considering to invent another sub-repo, at >> least >> to host these python dependencies, if installing under web/ won't work. >> The >> Python packages are purely static, and won't be updated frequently enough. >> We >> can host the main pgadmin4 package in our repo, but then it will be users' >> responsibility to install the dependencies by using our repo, which may >> break >> their systems (or not, no idea) >> > > Yikes. Yeah you definitely do *not* want to have new versions of all those > packages show up on peoples systems by default, that'll break a whole lot of > things. +<several hundred> > I don't think keeping them in a separate repository is really going to work > either -- it will still cause the breakage for anybody who wants to use > pgadmin4. Yeah. > The reasonable thing would be to install them locally in the pgadmin4 > package (or in a pgadmin4-dependencies or whatever you want to call it), in > a way that they are not used by any other software on the system. If that's > not possible, I think you're just going to have to declare RHEL6 as > unsupported for it. But surely most or all of that can run inside a > virtualenv together with the pgadmin code, so I would be surprised if they > cannot be installed locally. > > Finally, I think you need to be careful about calling them "purely static". > Several of those will need to be monitored for security updates and new > versions pushed when those show up, if you end up bundling them. Especially > important if pgadmin4 is used in server mode, but there's definitely things > in there that would be critical to make sure they're updated for desktop > mode as well. I think the first question to answer is, of the packages that already exist in Centos/EPEL, which ones are actually too old to be used? As I mentioned earlier in the thread, the version numbers in our requirements.txt file are really just "the oldest versions we're tried and know work" rather than a definitive list of absolute minimum versions. It may be that in reality, there are no problems, or that it's just one or two packages that we need newer versions of. -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Hi Dave, On Mon, 2017-03-20 at 10:44 +0000, Dave Page wrote: > I think the first question to answer is, of the packages that already > exist in Centos/EPEL, which ones are actually too old to be used? Don't know. Needs some testing from someone. > As I mentioned earlier in the thread, the version numbers in our > requirements.txt file are really just "the oldest versions we're tried > and know work" rather than a definitive list of absolute minimum > versions. I just finished documenting my work here: https://docs.google.com/spreadsheets/d/1PULZkQUrJYslVsuhBriPr0EhxD_0gf15niyn3KRf8KU/edit?usp=sharing You can see and compare/comment on the versions. Regards, -- Devrim Gündüz EnterpriseDB: http://www.enterprisedb.com PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer Twitter: @DevrimGunduz , @DevrimGunduzTR
Вложения
On Mon, Mar 20, 2017 at 12:06 PM, Devrim Gündüz <devrim@gunduz.org> wrote: > > Hi Dave, > > On Mon, 2017-03-20 at 10:44 +0000, Dave Page wrote: >> I think the first question to answer is, of the packages that already >> exist in Centos/EPEL, which ones are actually too old to be used? > > Don't know. Needs some testing from someone. Hey, I know "someone"! Let's call him Devrim :-) So, I think the easy way to do this is just install whatever is available from the dependency list, regardless of version. Then, add the packages you've built for anything that doesn't exist at all. Then, just try running pgAdmin, and see what happens. It may be that it just works, or it may be that we can fix any issues in code. Thanks! -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Hi, On Mon, 2017-03-20 at 12:10 +0000, Dave Page wrote: > Hey, I know "someone"! Let's call him Devrim :-) :-) > So, I think the easy way to do this is just install whatever is > available from the dependency list, regardless of version. Then, add > the packages you've built for anything that doesn't exist at all. > Then, just try running pgAdmin, and see what happens. It may be that > it just works, or it may be that we can fix any issues in code. It first failed with passlib: self._from_dict(kwds) File "/usr/lib/python2.6/site-packages/passlib/context.py", line 473, in _from_dict raise KeyError("known scheme in deprecated list: %r" % (scheme,)) KeyError: "known scheme in deprecated list: 'auto'" This went away after upgrading to my version. Following that, pgadmin4 failed with: File "/usr/lib/python2.6/site-packages/pgadmin4-web/pgadmin/utils/driver/psycopg2/__init__.py", line 28, in <module> from pgadmin.utils.crypto import decrypt File "/usr/lib/python2.6/site-packages/pgadmin4-web/pgadmin/utils/crypto.py", line 15, in <module> from Crypto import Random ImportError: cannot import name Random ...and error goes away when I update python-crypto package. Regards, -- Devrim Gündüz EnterpriseDB: http://www.enterprisedb.com PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer Twitter: @DevrimGunduz , @DevrimGunduzTR
Вложения
On Fri, Mar 24, 2017 at 11:57 AM, Devrim Gündüz <devrim@gunduz.org> wrote: > > Hi, > > On Mon, 2017-03-20 at 12:10 +0000, Dave Page wrote: >> Hey, I know "someone"! Let's call him Devrim :-) > > :-) > >> So, I think the easy way to do this is just install whatever is >> available from the dependency list, regardless of version. Then, add >> the packages you've built for anything that doesn't exist at all. >> Then, just try running pgAdmin, and see what happens. It may be that >> it just works, or it may be that we can fix any issues in code. > > It first failed with passlib: > > self._from_dict(kwds) > File "/usr/lib/python2.6/site-packages/passlib/context.py", line 473, in _from_dict > raise KeyError("known scheme in deprecated list: %r" % (scheme,)) > KeyError: "known scheme in deprecated list: 'auto'" > > This went away after upgrading to my version. Following that, pgadmin4 failed with: > > File "/usr/lib/python2.6/site-packages/pgadmin4-web/pgadmin/utils/driver/psycopg2/__init__.py", line 28, in <module> > from pgadmin.utils.crypto import decrypt > File "/usr/lib/python2.6/site-packages/pgadmin4-web/pgadmin/utils/crypto.py", line 15, in <module> > from Crypto import Random > ImportError: cannot import name Random > > ...and error goes away when I update python-crypto package. OK - please try dropping the updated version of that package into the web/ directory, and removing it from the system - so you have: Crypto/ ... web/ pgadmin/ about/ browser/ ... Does that work? -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Hi Dave, On Fri, 2017-03-24 at 13:14 +0000, Dave Page wrote: > OK - please try dropping the updated version of that package into the > web/ directory, and removing it from the system - so you have: > > Crypto/ > ... > web/ > pgadmin/ > about/ > browser/ > ... > > Does that work? Sorry for the delay, I'll take a look at this today. Regards, -- Devrim Gündüz EnterpriseDB: http://www.enterprisedb.com PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer Twitter: @DevrimGunduz , @DevrimGunduzTR