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