SHA256
1
0
forked from pool/pgadmin4
Files
pgadmin4/fix-eventlet-select_epoll.patch
Antonio Larrosa cf1292bd5a Accepting request 1120781 from home:alarrosa:branches:server:database:postgresql
- Add a vendor.tar.xz source package with node modules that have to
  be downloaded in the developer workstation since otherwise they
  won't be able to get downloaded in the build service. 
- Add an update-vendor.sh script that updates (actually, recreates)
  the vendor.tar.xz package. This should be run manually with each
  package update.
- Remove obsoleted file pgadmin4.qt.conf.in which hasn't been used
  at all for some time.
- Add patch to set the environment variable EVENTLET_NO_GREENDNS
  which fixes pgadmin4 to build successfully with eventlet 0.33.3,
  httpcore 0.17.1 and httpx 0.24.0:
  * fix-eventlet-select_epoll.patch
- Merged pgadmin4-web subpackage into the main pgadmin4 package
  which now installs the pgAdmin4 server.
- Create new pgadmin4-desktop subpackage that includes a very small
  python script I wrote that starts the pgadmin4 server in runtime
  mode (as a regular user) and provides a system tray icon so users
  can open new windows and quit the server with a UI since the
  alternative (using the official pgAdmin4 runtime application
  would require providing a full node.js modules tree and using
  NW.js for the ui).
- Fix .desktop file which was now moved to the pgadmin4-desktop
  subpackage. The "Encoding" key is deprecated so it has been
  removed, only one main category is now used in the Categories
  key and the path to the icon was fixed.

- Update to 7.8
  * Supported Database Servers
    - PostgreSQL: 12, 13, 14, 15, and 16
    - EDB Advanced Server: 12, 13, 14 and 15

OBS-URL: https://build.opensuse.org/request/show/1120781
OBS-URL: https://build.opensuse.org/package/show/server:database:postgresql/pgadmin4?expand=0&rev=57
2023-10-27 13:08:10 +00:00

82 lines
4.9 KiB
Diff

pgAdmin4 fails to build with eventlet 0.33.3, httpcore 0.17.1 and httpx 0.24.0
with the error:
[ 12s] + python3 ../pkg/pip/setup_pip.py bdist_wheel
[ 13s] Traceback (most recent call last):
[ 13s] File "/home/abuild/rpmbuild/BUILD/pgadmin4-7.6/pip-build/../pkg/pip/setup_pip.py", line 56, in <module>
[ 13s] import config
[ 13s] File "/home/abuild/rpmbuild/BUILD/pgadmin4-7.6/pip-build/../web/config.py", line 32, in <module>
[ 13s] from pgadmin.utils import env, IS_WIN, fs_short_path
[ 13s] File "/home/abuild/rpmbuild/BUILD/pgadmin4-7.6/web/pgadmin/__init__.py", line 25, in <module>
[ 13s] from flask_socketio import SocketIO
[ 13s] File "/usr/lib/python3.11/site-packages/flask_socketio/__init__.py", line 9, in <module>
[ 13s] from socketio import socketio_manage # noqa: F401
[ 13s] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ 13s] File "/usr/lib/python3.11/site-packages/socketio/__init__.py", line 9, in <module>
[ 13s] from .zmq_manager import ZmqManager
[ 13s] File "/usr/lib/python3.11/site-packages/socketio/zmq_manager.py", line 5, in <module>
[ 13s] import eventlet.green.zmq as zmq
[ 13s] File "/usr/lib/python3.11/site-packages/eventlet/__init__.py", line 17, in <module>
[ 13s] from eventlet import convenience
[ 13s] File "/usr/lib/python3.11/site-packages/eventlet/convenience.py", line 7, in <module>
[ 13s] from eventlet.green import socket
[ 13s] File "/usr/lib/python3.11/site-packages/eventlet/green/socket.py", line 21, in <module>
[ 13s] from eventlet.support import greendns
[ 13s] File "/usr/lib/python3.11/site-packages/eventlet/support/greendns.py", line 79, in <module>
[ 13s] setattr(dns, pkg, import_patched('dns.' + pkg))
[ 13s] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ 13s] File "/usr/lib/python3.11/site-packages/eventlet/support/greendns.py", line 61, in import_patched
[ 13s] return patcher.import_patched(module_name, **modules)
[ 13s] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ 13s] File "/usr/lib/python3.11/site-packages/eventlet/patcher.py", line 132, in import_patched
[ 13s] return inject(
[ 13s] ^^^^^^^
[ 13s] File "/usr/lib/python3.11/site-packages/eventlet/patcher.py", line 109, in inject
[ 13s] module = __import__(module_name, {}, {}, module_name.split('.')[:-1])
[ 13s] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ 13s] File "/usr/lib/python3.11/site-packages/dns/asyncquery.py", line 38, in <module>
[ 13s] from dns.query import (
[ 13s] File "/usr/lib/python3.11/site-packages/dns/query.py", line 63, in <module>
[ 13s] import httpcore
[ 13s] File "/usr/lib/python3.11/site-packages/httpcore/__init__.py", line 1, in <module>
[ 13s] from ._api import request, stream
[ 13s] File "/usr/lib/python3.11/site-packages/httpcore/_api.py", line 5, in <module>
[ 13s] from ._sync.connection_pool import ConnectionPool
[ 13s] File "/usr/lib/python3.11/site-packages/httpcore/_sync/__init__.py", line 1, in <module>
[ 13s] from .connection import HTTPConnection
[ 13s] File "/usr/lib/python3.11/site-packages/httpcore/_sync/connection.py", line 12, in <module>
[ 13s] from .._synchronization import Lock
[ 13s] File "/usr/lib/python3.11/site-packages/httpcore/_synchronization.py", line 13, in <module>
[ 13s] import trio
[ 13s] File "/usr/lib/python3.11/site-packages/trio/__init__.py", line 18, in <module>
[ 13s] from ._core import (
[ 13s] File "/usr/lib/python3.11/site-packages/trio/_core/__init__.py", line 27, in <module>
[ 13s] from ._run import (
[ 13s] File "/usr/lib/python3.11/site-packages/trio/_core/_run.py", line 2452, in <module>
[ 13s] from ._io_epoll import EpollIOManager as TheIOManager
[ 13s] File "/usr/lib/python3.11/site-packages/trio/_core/_io_epoll.py", line 188, in <module>
[ 13s] class EpollIOManager:
[ 13s] File "/usr/lib/python3.11/site-packages/trio/_core/_io_epoll.py", line 189, in EpollIOManager
[ 13s] _epoll = attr.ib(factory=select.epoll)
[ 13s] ^^^^^^^^^^^^
[ 13s] AttributeError: module 'eventlet.green.select' has no attribute 'epoll'
[ 13s] error: Bad exit status from /var/tmp/rpm-tmp.ElnKCg (%build)
Setting the environment variable EVENTLET_NO_GREENDNS works around
this while the upstream issue is fixed:
https://github.com/eventlet/eventlet/issues/805
Index: pgadmin4-7.8/web/pgAdmin4.py
===================================================================
--- pgadmin4-7.8.orig/web/pgAdmin4.py
+++ pgadmin4-7.8/web/pgAdmin4.py
@@ -20,6 +20,7 @@ if sys.version_info < (3, 4):
'or later.')
import builtins
import os
+os.environ['EVENTLET_NO_GREENDNS'] = 'yes'
# We need to include the root directory in sys.path to ensure that we can
# find everything we need when running in the standalone runtime.