public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Sandro Mani <manisandro@gmail.com>
To: git-commits@fedoraproject.org
Subject: [rpms/pgadmin4] f45: Update to 9.18
Date: Fri, 18 Sep 2026 17:34:08 GMT [thread overview]
Message-ID: <178975284878.1.7585645697686382243.rpms-pgadmin4-81b90d8b3d5e@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/pgadmin4
Branch : f45
Commit : 81b90d8b3d5ed697d0d59f374a15c8b33e1e880e
Author : Sandro Mani <manisandro@gmail.com>
Date : 2026-09-18T19:33:59+02:00
Stats : +85/-123 in 8 file(s)
URL : https://src.fedoraproject.org/rpms/pgadmin4/c/81b90d8b3d5ed697d0d59f374a15c8b33e1e880e?branch=f45
Log:
Update to 9.18
---
diff --git a/.gitignore b/.gitignore
index ae6719e..3c86720 100644
--- a/.gitignore
+++ b/.gitignore
@@ -107,3 +107,5 @@
/pgadmin4-9.16-vendor.tar.xz
/pgadmin4-9.17.tar.gz
/pgadmin4-9.17-vendor.tar.xz
+/pgadmin4-9.18.tar.gz
+/pgadmin4-9.18-vendor.tar.xz
diff --git a/adjust_requirements.py b/adjust_requirements.py
index 1197cb7..25135d1 100755
--- a/adjust_requirements.py
+++ b/adjust_requirements.py
@@ -22,7 +22,8 @@ for idx, requirement in enumerate(requirements):
except:
base = requirement
platform = ""
- parts = re.split(r"([<>=~]+)", base)
+ parts = re.split(r"([<>=~]+)", base)[0:3]
+ parts[2] = parts[2].rstrip(",")
if 'sys_platform=="win32"' in platform:
continue
# special cases
@@ -30,8 +31,9 @@ for idx, requirement in enumerate(requirements):
parts[0] = "psycopg"
elif parts[0] == "typer[all]":
parts[0] = "typer"
- # prov = parts[0].lower().replace(r'[', r'\[').replace(r']', r'\]')
- prov = parts[0].lower().replace('[pil]', '').replace(r'[', r'\[').replace(r']', r'\]')
+ elif parts[0] == "qrcode[pil]":
+ parts[0] = "qrcode"
+ prov = parts[0].lower().replace(r'[', r'\[').replace(r']', r'\]')
print("Checking %s..." % parts[0])
if release == "rawhide":
cmd = ['dnf', '--disablerepo=*', '--releasever', release, '--enablerepo=rawhide', 'repoquery', '--whatprovides', 'python3dist(%s)' % prov, '--queryformat', '%{VERSION}\n']
@@ -46,9 +48,12 @@ for idx, requirement in enumerate(requirements):
parts[2] = version_required
if Version(version_available) < Version(version_required):
parts[2] = version_available
- requirements[idx] = "".join(parts)
+ new_req = "".join(parts)
if platform:
- requirements[idx] += "; " + platform
+ new_req += "; " + platform
+ print(" * OLD: %s" % requirements[idx])
+ print(" * NEW: %s" % new_req)
+ requirements[idx] = new_req
with open(requirements_path + ".new", 'w') as fh:
fh.write("\n".join(requirements))
diff --git a/pgadmin4.spec b/pgadmin4.spec
index b127379..cf29ac1 100644
--- a/pgadmin4.spec
+++ b/pgadmin4.spec
@@ -6,8 +6,8 @@
Name: pgadmin4
# NOTE: Also regenerate requires as indicated below when updating!
# Verify Patch4 on next update
-Version: 9.17
-Release: 2%{?dist}
+Version: 9.18
+Release: 1%{?dist}
Summary: Administration tool for PostgreSQL
# i686, armv7hl: The webpack terser plugin aborts with JS heap memory exhaustion on these arches
@@ -37,8 +37,6 @@ Patch0: pgadmin4_requirements.patch
Patch1: pgadmin4_azure-mgmt-rdbms.patch
# Drop requirement on unpackaged python-sphinxcontrib-youtube
Patch2: pgadmin4_sphinx_youtube.patch
-# Fix compatibility with psycopg3-3.5
-Patch3: pgadmin4_psycopg3.patch
# For docs
BuildRequires: glibc-langpack-en
@@ -58,7 +56,7 @@ Requires: python3dist(azure-mgmt-subscription) >= 3.1.1
Requires: python3dist(bcrypt) >= 4.3
Requires: python3dist(boto3) >= 1.43
Requires: python3dist(certifi) >= 2026.1.4
-Requires: python3dist(cryptography) >= 49
+Requires: python3dist(cryptography) >= 50
Requires: python3dist(flask-babel) >= 4
Requires: python3dist(flask-compress) >= 1
Requires: python3dist(flask-login) >= 0
@@ -78,7 +76,6 @@ Requires: python3dist(keyring) >= 25
Requires: python3dist(ldap3) >= 2
Requires: python3dist(libgravatar) >= 1
Requires: python3dist(paramiko) >= 3.5.1
-Requires: python3dist(passlib) >= 1
Requires: python3dist(psutil) >= 7.2
Requires: python3dist(psycopg) >= 3.3.4
Requires: python3dist(pyotp) >= 2
@@ -89,7 +86,7 @@ Requires: python3dist(setuptools) >= 83
Requires: python3dist(sqlalchemy) >= 2
Requires: python3dist(sqlparse) >= 0
Requires: python3dist(sshtunnel) >= 0
-Requires: python3dist(typer) >= 0.26
+Requires: python3dist(typer) >= 0.27
Requires: python3dist(urllib3) >= 2.7
Requires: python3dist(user-agents) >= 2.2
Requires: python3dist(werkzeug) >= 3.1
@@ -251,6 +248,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
%changelog
+* Thu Sep 17 2026 Sandro Mani <manisandro@gmail.com> - 9.18-1
+- Update to 9.18
+
* Thu Sep 03 2026 Sandro Mani <manisandro@gmail.com> - 9.17-2
- Add patch to fix compatibility with pgadmin3 (#2527807)
diff --git a/pgadmin4_azure-mgmt-rdbms.patch b/pgadmin4_azure-mgmt-rdbms.patch
index ae91a10..1033571 100644
--- a/pgadmin4_azure-mgmt-rdbms.patch
+++ b/pgadmin4_azure-mgmt-rdbms.patch
@@ -1,18 +1,20 @@
-diff -rupN --no-dereference pgadmin4-9.17/web/pgadmin/misc/cloud/azure/__init__.py pgadmin4-9.17-new/web/pgadmin/misc/cloud/azure/__init__.py
---- pgadmin4-9.17/web/pgadmin/misc/cloud/azure/__init__.py 2026-07-30 05:14:00.000000000 +0200
-+++ pgadmin4-9.17-new/web/pgadmin/misc/cloud/azure/__init__.py 2026-07-31 14:38:39.980998254 +0200
-@@ -31,8 +31,12 @@ from azure.identity import AzureCliCrede
- AuthenticationRecord
- from azure.mgmt.resource import ResourceManagementClient
- from azure.mgmt.subscription import SubscriptionClient
--from azure.mgmt.rdbms.postgresql_flexibleservers.models import \
-- NameAvailabilityRequest
-+try:
-+ from azure.mgmt.rdbms.postgresql.models import \
-+ NameAvailabilityRequest
-+except:
-+ from azure.mgmt.rdbms.postgresql_flexibleservers.models import \
-+ NameAvailabilityRequest
-
- MODULE_NAME = 'azure'
+diff -rupN --no-dereference pgadmin4-9.18/web/pgadmin/misc/cloud/azure/__init__.py pgadmin4-9.18-new/web/pgadmin/misc/cloud/azure/__init__.py
+--- pgadmin4-9.18/web/pgadmin/misc/cloud/azure/__init__.py 2026-09-15 15:17:59.000000000 +0200
++++ pgadmin4-9.18-new/web/pgadmin/misc/cloud/azure/__init__.py 2026-09-18 18:54:11.329198088 +0200
+@@ -267,9 +267,13 @@ def _azure_sdk():
+ from azure.mgmt.rdbms.postgresql_flexibleservers import (
+ PostgreSQLManagementClient
+ )
+- from azure.mgmt.rdbms.postgresql_flexibleservers.models import (
+- NameAvailabilityRequest
+- )
++ try:
++ from azure.mgmt.rdbms.postgresql.models import \
++ NameAvailabilityRequest
++ except:
++ from azure.mgmt.rdbms.postgresql_flexibleservers.models import \
++ NameAvailabilityRequest
++
+ from azure.mgmt.resource import ResourceManagementClient
+ from azure.mgmt.subscription import SubscriptionClient
diff --git a/pgadmin4_psycopg3.patch b/pgadmin4_psycopg3.patch
deleted file mode 100644
index 0af6fd0..0000000
--- a/pgadmin4_psycopg3.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -rupN pgadmin4-9.17/web/pgadmin/utils/driver/psycopg3/encoding.py pgadmin4-9.17-new/web/pgadmin/utils/driver/psycopg3/encoding.py
---- pgadmin4-9.17/web/pgadmin/utils/driver/psycopg3/encoding.py 2026-07-30 05:14:00.000000000 +0200
-+++ pgadmin4-9.17-new/web/pgadmin/utils/driver/psycopg3/encoding.py 2026-09-03 10:34:59.822183347 +0200
-@@ -43,8 +43,12 @@ def get_encoding(key):
- current_app.logger.error(e)
- postgres_encoding = 'utf-8'
-
-- python_encoding = psycopg._encodings._py_codecs.get(postgres_encoding,
-- 'utf-8')
-+ if isinstance(psycopg._encodings._py_codecs, dict):
-+ python_encoding = psycopg._encodings._py_codecs.get(postgres_encoding,
-+ 'utf-8')
-+ else:
-+ python_encoding = psycopg._encodings.py_codecs.get(
-+ postgres_encoding.upper().encode(), 'utf-8')
-
- _dict = encode_dict.get(postgres_encoding.upper(),
- [postgres_encoding,
-@@ -59,11 +63,23 @@ def configure_driver_encodings(encodings
- # because for parameterized DML, param values are converted based on
- # python encoding of pyscopg's internal encodings dict.
-
-- for key, val in encode_dict.items():
-- _, python_encoding = val
-- psycopg._encodings._py_codecs[key] = python_encoding
--
-- encodings.update((k.encode(), v
-- ) for k, v in psycopg._encodings._py_codecs.items())
-- psycopg._encodings.pg_codecs = {
-- v: k.encode() for k, v in psycopg._encodings._py_codecs.items()}
-+ # psycopg._encodings._py_codecs is a private symbol: it was a
-+ # dict[str, str] up to psycopg 3.3.4 and became a tuple of alias
-+ # groups in 3.3.5. Update the public py_codecs/pg_codecs maps that
-+ # pg2pyenc()/py2pgenc() actually look at, instead of rebuilding them
-+ # from the private one.
-+
-+ if isinstance(psycopg._encodings._py_codecs, dict):
-+ for key, val in encode_dict.items():
-+ _, python_encoding = val
-+ psycopg._encodings._py_codecs[key] = python_encoding
-+
-+ encodings.update((k.encode(), v
-+ ) for k, v in psycopg._encodings._py_codecs.items())
-+ psycopg._encodings.pg_codecs = {
-+ v: k.encode() for k, v in psycopg._encodings._py_codecs.items()}
-+ else:
-+ for key, val in encode_dict.items():
-+ _, python_encoding = val
-+ encodings[key.encode()] = python_encoding
-+ psycopg._encodings.pg_codecs[python_encoding] = key.encode()
diff --git a/pgadmin4_requirements.patch b/pgadmin4_requirements.patch
index ace0dcc..ed3ca34 100644
--- a/pgadmin4_requirements.patch
+++ b/pgadmin4_requirements.patch
@@ -1,21 +1,27 @@
-diff -rupN --no-dereference pgadmin4-9.17/requirements.txt pgadmin4-9.17-new/requirements.txt
---- pgadmin4-9.17/requirements.txt 2026-07-30 05:14:00.000000000 +0200
-+++ pgadmin4-9.17-new/requirements.txt 2026-07-31 14:38:39.635218936 +0200
-@@ -12,59 +12,59 @@
+--- pgadmin4-9.18/requirements.txt 2026-09-15 15:17:59.000000000 +0200
++++ pgadmin4-9.18-new/requirements.txt 2026-09-18 19:32:07.188753824 +0200
+@@ -12,64 +12,64 @@
# relevant packages.
###############################################################################
-Authlib==1.6.*; python_version <= '3.9'
--Authlib==1.7.*; python_version > '3.9'
+-Authlib==1.8.*; python_version > '3.9'
-azure-identity==1.25.3
-azure-mgmt-rdbms==10.1.1
--azure-mgmt-resource==25.0.0
++Authlib>=1.5.2; python_version <= '3.9'
++Authlib>=1.5.2; python_version > '3.9'
++azure-identity>=1.25.3
++azure-mgmt-rdbms>=10.1.1
+ # Azure CLI (a common companion package on Linux distros) still pins
+ # azure-mgmt-resource<25, so keep the lower bound at 24.0.0 to avoid
+ # conflicts for distro packagers; see pgadmin-org/pgadmin4#10247.
+-azure-mgmt-resource>=24.0.0,<26.0.0
-azure-mgmt-subscription==3.1.1
-bcrypt==5.0.*
-boto3==1.42.*; python_version <= '3.9'
-boto3==1.43.*; python_version > '3.9'
--certifi==2026.6.17
--cryptography==49.0.*
+-certifi==2026.7.22
+-cryptography==50.0.*
-Flask-Babel==4.0.*
-Flask-Compress==1.*
-Flask-Login==0.*
@@ -23,7 +29,24 @@ diff -rupN --no-dereference pgadmin4-9.17/requirements.txt pgadmin4-9.17-new/req
-Flask-Migrate==4.*
-Flask-Paranoid==0.*
-Flask-Security-Too==5.6.*; python_version <= '3.9'
--Flask-Security-Too==5.8.*; python_version > '3.9'
++azure-mgmt-resource>=24.0.0
++azure-mgmt-subscription>=3.1.1
++bcrypt>=4.3.0
++boto3>=1.42.0; python_version <= '3.9'
++boto3>=1.43.0; python_version > '3.9'
++certifi>=2026.01.04
++cryptography>=50.0.0
++Flask-Babel>=4.0.0
++Flask-Compress>=1.0
++Flask-Login>=0.0
++Flask-Mail>=0.0
++Flask-Migrate>=4.0
++Flask-Paranoid>=0.0
++Flask-Security-Too>=5.6.0; python_version <= '3.9'
+ # 5.8.2 corrected the inverted UserMixin.is_locked() test in LoginForm;
+ # User.is_locked() in web/pgadmin/model/__init__.py follows the fixed
+ # semantics, so anything earlier in the 5.8 series would refuse all logins.
+-Flask-Security-Too>=5.8.2,<5.9; python_version > '3.9'
-Flask-SocketIO==5.6.*
-Flask-SQLAlchemy==3.1.*
-Flask-WTF==1.2.*; python_version <= '3.9'
@@ -31,38 +54,19 @@ diff -rupN --no-dereference pgadmin4-9.17/requirements.txt pgadmin4-9.17-new/req
-Flask==3.1.*
-google-api-python-client==2.*
-google-auth-oauthlib==1.3.1; python_version <= '3.9'
--google-auth-oauthlib==1.4.0; python_version > '3.9'
--gssapi==1.11.*
+-google-auth-oauthlib==1.4.1; python_version > '3.9'
+-gssapi==1.12.*
-jsonformatter~=0.3.4
-keyring==25.*
-ldap3==2.*
-libgravatar==1.0.*
-paramiko==3.5.1
--passlib==1.*
-psutil==7.2.*
-psycopg[c]==3.2.13; python_version < '3.10'
-psycopg[c]==3.3.4; python_version >= '3.10'
-pyotp==2.*
-python-dateutil==2.*
-pytz==2026.*
-+Authlib>=1.5.2; python_version <= '3.9'
-+Authlib>=1.5.2; python_version > '3.9'
-+azure-identity>=1.25.3
-+azure-mgmt-rdbms>=10.1.1
-+azure-mgmt-resource>=24.0.0
-+azure-mgmt-subscription>=3.1.1
-+bcrypt>=4.3.0
-+boto3>=1.42.0; python_version <= '3.9'
-+boto3>=1.43.0; python_version > '3.9'
-+certifi>=2026.01.04
-+cryptography>=49.0.0
-+Flask-Babel>=4.0.0
-+Flask-Compress>=1.0
-+Flask-Login>=0.0
-+Flask-Mail>=0.0
-+Flask-Migrate>=4.0
-+Flask-Paranoid>=0.0
-+Flask-Security-Too>=5.6.0; python_version <= '3.9'
+Flask-Security-Too>=5.6.2; python_version > '3.9'
+Flask-SocketIO>=5.6.0
+Flask-SQLAlchemy>=3.0.5
@@ -78,7 +82,6 @@ diff -rupN --no-dereference pgadmin4-9.17/requirements.txt pgadmin4-9.17-new/req
+ldap3>=2.0
+libgravatar>=1.0.0
+paramiko>=3.5.1
-+passlib>=1.0
+psutil>=7.2.0
+psycopg>=3.2.13; python_version < '3.10'
+psycopg>=3.3.4; python_version >= '3.10'
@@ -89,26 +92,26 @@ diff -rupN --no-dereference pgadmin4-9.17/requirements.txt pgadmin4-9.17-new/req
pywinpty==2.0.*; sys_platform=="win32"
-qrcode[pil]==8.*
-setuptools<82; python_version <= '3.9'
--setuptools==83.*; python_version > '3.9'
+-setuptools==84.*; python_version > '3.9'
-SQLAlchemy==2.*
-sqlparse==0.*
-sshtunnel==0.*
-typer[all]==0.23.*; python_version <= '3.9'
--typer==0.26.*; python_version > '3.9'
+-typer==0.27.*; python_version > '3.9'
-urllib3==1.26.*; python_version <= '3.9'
-urllib3==2.7.*; python_version > '3.9'
-user-agents==2.2.0
-Werkzeug==3.1.*
-WTForms==3.1.*; python_version <= '3.9'
-WTForms==3.2.*; python_version > '3.9'
-+qrcode[pil]>=8.0
++qrcode>=8.0
+setuptools>=82; python_version <= '3.9'
-+setuptools>=83.0; python_version > '3.9'
++setuptools>=83.0.0; python_version > '3.9'
+SQLAlchemy>=2.0
+sqlparse>=0.0
+sshtunnel>=0.0
+typer>=0.23.0; python_version <= '3.9'
-+typer>=0.26.0; python_version > '3.9'
++typer>=0.27.0; python_version > '3.9'
+urllib3>=1.26.0; python_version <= '3.9'
+urllib3>=2.7.0; python_version > '3.9'
+user-agents>=2.2.0
diff --git a/pgadmin4_sphinx_youtube.patch b/pgadmin4_sphinx_youtube.patch
index 184d8d2..852c42f 100644
--- a/pgadmin4_sphinx_youtube.patch
+++ b/pgadmin4_sphinx_youtube.patch
@@ -1,6 +1,6 @@
-diff -rupN --no-dereference pgadmin4-9.17/docs/en_US/conf.py pgadmin4-9.17-new/docs/en_US/conf.py
---- pgadmin4-9.17/docs/en_US/conf.py 2026-07-30 05:13:59.000000000 +0200
-+++ pgadmin4-9.17-new/docs/en_US/conf.py 2026-07-31 14:38:40.324622774 +0200
+diff -rupN --no-dereference pgadmin4-9.18/docs/en_US/conf.py pgadmin4-9.18-new/docs/en_US/conf.py
+--- pgadmin4-9.18/docs/en_US/conf.py 2026-09-15 15:17:58.000000000 +0200
++++ pgadmin4-9.18-new/docs/en_US/conf.py 2026-09-18 18:54:11.608858272 +0200
@@ -36,7 +36,8 @@ import config
# Add any Sphinx extension module names here, as strings. They can be
@@ -11,9 +11,9 @@ diff -rupN --no-dereference pgadmin4-9.17/docs/en_US/conf.py pgadmin4-9.17-new/d
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
-diff -rupN --no-dereference pgadmin4-9.17/docs/en_US/processes.rst pgadmin4-9.17-new/docs/en_US/processes.rst
---- pgadmin4-9.17/docs/en_US/processes.rst 2026-07-30 05:13:59.000000000 +0200
-+++ pgadmin4-9.17-new/docs/en_US/processes.rst 2026-07-31 14:38:40.324984850 +0200
+diff -rupN --no-dereference pgadmin4-9.18/docs/en_US/processes.rst pgadmin4-9.18-new/docs/en_US/processes.rst
+--- pgadmin4-9.18/docs/en_US/processes.rst 2026-09-15 15:17:59.000000000 +0200
++++ pgadmin4-9.18-new/docs/en_US/processes.rst 2026-09-18 18:54:11.609180990 +0200
@@ -47,9 +47,3 @@ Use the **End Process** button to end th
.. note:: If you are running *pgAdmin* in *Server Mode* you can click on the |sm_icon| icon in the process watcher window to open the file location in the Storage Manager. You can use the :ref:`Storage Manager <storage_manager>` to download the backup file on the client machine .
diff --git a/sources b/sources
index 42ef6b5..c4792fb 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (pgadmin4-9.17.tar.gz) = 6b43a180daad6a1e4bcb993063dd2fd3d07cf47c525b8c55487b14f9caf48585ec22db76fa657acc965795d7973a05c0dd0adeb4fa348b42c7c3cf297b085e2e
-SHA512 (pgadmin4-9.17-vendor.tar.xz) = 4dfbef76e4f64cf2b5edcb5e5044ddb5ac72b483e93c202401627ae777f980a1a34bc575dd43c153218d6b486cccefd581db7d2a4c5fb4634cd828744c42e25a
+SHA512 (pgadmin4-9.18.tar.gz) = fa0a98870399a46f048abe512a149fae2e263d01aa70d0e8d756eddf6dc31750deaf2323ba5a0158851d6d2afdcb43602b6fc196acb0f2d22c211829575179d9
+SHA512 (pgadmin4-9.18-vendor.tar.xz) = cbf24bd75844af676d81599f09e9223aa9408ed3ed1c569cf94efdf9358b2cd3737e88c11e65c14263c7ba416325fa2d6b56191b8fca995fa81f6d5eceaa1905
reply other threads:[~2026-09-18 17:34 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178975284878.1.7585645697686382243.rpms-pgadmin4-81b90d8b3d5e@fedoraproject.org \
--to=manisandro@gmail.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox