From 353ce3bb0203819b5133a6ddc3aa366c53c4fbb5 Mon Sep 17 00:00:00 2001 From: Nathan Scott Date: Fri, 21 Nov 2025 17:02:14 +1100 Subject: [PATCH 1/2] src/python: modernize Python packaging with pyproject.toml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Convert from deprecated distutils-based setup.py to modern pyproject.toml packaging (PEP 518, PEP 621) while maintaining C extension support. Changes: - Add pyproject.toml with project metadata and setuptools backend - Rename setup-pyproject.py to setup.py for pip wheel building (pip requires setup.py to properly build platform wheels with C extensions) - Update GNUmakefile to use 'pip install' instead of 'setup.py install' - Fix .so file tracking pattern to capture extension modules in python3-pcp.list This hybrid approach (pyproject.toml + setup.py) is the recommended method for packaging Python projects with C extensions until setuptools fully supports declaring extensions in pyproject.toml's standard format. Fixes: All 5 C extension modules (.so files) now properly tracked in python3-pcp.list, which is essential for RPM/Debian packaging on other platforms. Tested: macOS build successful, .dmg created with all extension modules present and tracked. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/python/GNUmakefile | 4 +- src/python/compat-setup.py | 71 ++++++++++++++++++++++++++++++++ src/python/pyproject.toml | 59 +++++++++++++++++++++++++++ src/python/setup.py | 83 +++++++------------------------------- 4 files changed, 147 insertions(+), 70 deletions(-) create mode 100644 src/python/compat-setup.py create mode 100644 src/python/pyproject.toml mode change 100644 => 100755 src/python/setup.py diff --git a/src/python/GNUmakefile b/src/python/GNUmakefile index a78ebcc4318..6abc93f394d 100644 --- a/src/python/GNUmakefile +++ b/src/python/GNUmakefile @@ -57,7 +57,6 @@ default default_pcp: pre_build build_python3 ifeq "$(ENABLE_PYTHON3)" "true" PY3_BUILD_OPTS = $(SETUP_PY_BUILD_OPTIONS) -PY3_INSTALL_OPTS = $(SETUP_PY_INSTALL_OPTIONS) --record=$(TOPDIR)/python3-pcp.list build_python3: $(SETUP_PY) $(CFILES) export $(ENV); $(PYTHON3) $(SETUP_PY) build_ext $(PY3_BUILD_OPTS) export $(ENV); $(PYTHON3) $(SETUP_PY) build @@ -65,7 +64,8 @@ build_python3: $(SETUP_PY) $(CFILES) touch build_python3 install_python3: build_python3 - export $(ENV); $(PYTHON3) $(SETUP_PY) install $(PY3_INSTALL_OPTS) + export $(ENV); $(PYTHON3) -m pip install --no-build-isolation --no-deps --ignore-installed --root="$${DIST_ROOT:-/}" --prefix=$(PYTHON_PREFIX) --no-compile . + (cd "$${DIST_ROOT:-/}" && find . -type f \( -path '*/site-packages/pcp/*' -o -path '*/site-packages/pcp-*.dist-info/*' -o -path '*/site-packages/test/*' -o -path '*/site-packages/*.cpython-*.so' \) | sed 's|^\./||') > $(TOPDIR)/python3-pcp.list export $(ENV); $(PYTHON3_INSTALL) else build_python3: diff --git a/src/python/compat-setup.py b/src/python/compat-setup.py new file mode 100644 index 00000000000..0f9def6cf27 --- /dev/null +++ b/src/python/compat-setup.py @@ -0,0 +1,71 @@ +""" Build script for the PCP python package """ +# +# Copyright (C) 2012-2019,2021,2025 Red Hat. +# Copyright (C) 2009-2012 Michael T. Werner +# +# This file is part of the "pcp" module, the python interfaces for the +# Performance Co-Pilot toolkit. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +# New way, modern setup mechanisms for pypi +from setuptools import setup, find_packages, Extension +# To use a consistent encoding +from codecs import open +from os import path + +# Get the long description from the README file +here = path.abspath(path.dirname(__file__)) +with open(path.join(here, 'README.rst'), encoding='utf-8') as f: + long_description = f.read() + +setup(name = 'pcp', + version = '7.0', + description = 'Performance Co-Pilot collector, monitor and instrumentation APIs', + long_description = long_description, + long_description_content_type = 'text/x-rst', + license = 'GPL-2.0-or-later AND LGPL-2.1-or-later', + author = 'Performance Co-Pilot Development Team', + author_email = 'pcp@groups.io', + url = 'https://pcp.io', + packages = find_packages(), + ext_modules = [ + Extension('cpmapi', ['pmapi.c'], libraries = ['pcp']), + Extension('cpmda', ['pmda.c'], libraries = ['pcp_pmda', 'pcp']), + Extension('cpmgui', ['pmgui.c'], libraries = ['pcp_gui', 'pcp']), + Extension('cpmi', ['pmi.c'], libraries = ['pcp_import', 'pcp']), + Extension('cmmv', ['mmv.c'], libraries = ['pcp_mmv', 'pcp']), + ], + keywords = ['performance', 'analysis', 'monitoring' ], + platforms = [ 'Windows', 'Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'Solaris', 'macOS', 'AIX' ], + classifiers = [ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', + 'Intended Audience :: System Administrators', + 'Intended Audience :: Information Technology', + 'Natural Language :: English', + 'Operating System :: macOS :: macOS', + 'Operating System :: Microsoft :: Windows', + 'Operating System :: POSIX', + 'Operating System :: POSIX :: AIX', + 'Operating System :: POSIX :: BSD :: NetBSD', + 'Operating System :: POSIX :: BSD :: OpenBSD', + 'Operating System :: POSIX :: BSD :: FreeBSD', + 'Operating System :: POSIX :: Linux', + 'Operating System :: POSIX :: SunOS/Solaris', + 'Operating System :: Unix', + 'Topic :: System :: Logging', + 'Topic :: System :: Monitoring', + 'Topic :: System :: Networking :: Monitoring', + 'Topic :: Software Development :: Libraries', + ], +) diff --git a/src/python/pyproject.toml b/src/python/pyproject.toml new file mode 100644 index 00000000000..d38575356fb --- /dev/null +++ b/src/python/pyproject.toml @@ -0,0 +1,59 @@ +# Build script for the PCP python package +# +# Copyright (C) 2012-2019,2021,2025 Red Hat. +# Copyright (C) 2009-2012 Michael T. Werner +# +# This file is part of the "pcp" module, the python interfaces for the +# Performance Co-Pilot toolkit. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. + +[build-system] +requires = ["setuptools>=61.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "pcp" +version = "7.0" +description = "Performance Co-Pilot collector, monitor and instrumentation APIs" +readme = {file = "README.rst", content-type = "text/x-rst"} +license = "GPL-2.0-or-later AND LGPL-2.1-or-later" +authors = [ + {name = "Performance Co-Pilot Development Team", email = "pcp@groups.io"} +] +keywords = ["performance", "analysis", "monitoring"] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Intended Audience :: Information Technology", + "Natural Language :: English", + "Operating System :: macOS :: macOS", + "Operating System :: Microsoft :: Windows", + "Operating System :: POSIX", + "Operating System :: POSIX :: AIX", + "Operating System :: POSIX :: BSD :: NetBSD", + "Operating System :: POSIX :: BSD :: OpenBSD", + "Operating System :: POSIX :: BSD :: FreeBSD", + "Operating System :: POSIX :: Linux", + "Operating System :: POSIX :: SunOS/Solaris", + "Operating System :: Unix", + "Topic :: System :: Logging", + "Topic :: System :: Monitoring", + "Topic :: System :: Networking :: Monitoring", + "Topic :: Software Development :: Libraries", +] + +[project.urls] +Homepage = "https://pcp.io" + +[tool.setuptools] +packages = {find = {}} diff --git a/src/python/setup.py b/src/python/setup.py old mode 100644 new mode 100755 index 0f9def6cf27..a5db84b5563 --- a/src/python/setup.py +++ b/src/python/setup.py @@ -1,71 +1,18 @@ -""" Build script for the PCP python package """ -# -# Copyright (C) 2012-2019,2021,2025 Red Hat. -# Copyright (C) 2009-2012 Michael T. Werner -# -# This file is part of the "pcp" module, the python interfaces for the -# Performance Co-Pilot toolkit. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# +#!/usr/bin/env python3 +""" +Setup script that reads metadata from pyproject.toml +and defines C extension modules. +""" +from setuptools import setup, Extension -# New way, modern setup mechanisms for pypi -from setuptools import setup, find_packages, Extension -# To use a consistent encoding -from codecs import open -from os import path - -# Get the long description from the README file -here = path.abspath(path.dirname(__file__)) -with open(path.join(here, 'README.rst'), encoding='utf-8') as f: - long_description = f.read() - -setup(name = 'pcp', - version = '7.0', - description = 'Performance Co-Pilot collector, monitor and instrumentation APIs', - long_description = long_description, - long_description_content_type = 'text/x-rst', - license = 'GPL-2.0-or-later AND LGPL-2.1-or-later', - author = 'Performance Co-Pilot Development Team', - author_email = 'pcp@groups.io', - url = 'https://pcp.io', - packages = find_packages(), - ext_modules = [ - Extension('cpmapi', ['pmapi.c'], libraries = ['pcp']), - Extension('cpmda', ['pmda.c'], libraries = ['pcp_pmda', 'pcp']), - Extension('cpmgui', ['pmgui.c'], libraries = ['pcp_gui', 'pcp']), - Extension('cpmi', ['pmi.c'], libraries = ['pcp_import', 'pcp']), - Extension('cmmv', ['mmv.c'], libraries = ['pcp_mmv', 'pcp']), - ], - keywords = ['performance', 'analysis', 'monitoring' ], - platforms = [ 'Windows', 'Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'Solaris', 'macOS', 'AIX' ], - classifiers = [ - 'Development Status :: 5 - Production/Stable', - 'Intended Audience :: Developers', - 'Intended Audience :: System Administrators', - 'Intended Audience :: Information Technology', - 'Natural Language :: English', - 'Operating System :: macOS :: macOS', - 'Operating System :: Microsoft :: Windows', - 'Operating System :: POSIX', - 'Operating System :: POSIX :: AIX', - 'Operating System :: POSIX :: BSD :: NetBSD', - 'Operating System :: POSIX :: BSD :: OpenBSD', - 'Operating System :: POSIX :: BSD :: FreeBSD', - 'Operating System :: POSIX :: Linux', - 'Operating System :: POSIX :: SunOS/Solaris', - 'Operating System :: Unix', - 'Topic :: System :: Logging', - 'Topic :: System :: Monitoring', - 'Topic :: System :: Networking :: Monitoring', - 'Topic :: Software Development :: Libraries', +# Metadata comes from pyproject.toml +# C extensions must be defined here as pyproject.toml doesn't support them in the standard format +setup( + ext_modules=[ + Extension('cpmapi', ['pmapi.c'], libraries=['pcp']), + Extension('cpmda', ['pmda.c'], libraries=['pcp_pmda', 'pcp']), + Extension('cpmgui', ['pmgui.c'], libraries=['pcp_gui', 'pcp']), + Extension('cpmi', ['pmi.c'], libraries=['pcp_import', 'pcp']), + Extension('cmmv', ['mmv.c'], libraries=['pcp_mmv', 'pcp']), ], ) From 43428de0cffde3d5efeefa228fe1b0fbc568bceb Mon Sep 17 00:00:00 2001 From: Nathan Scott Date: Mon, 24 Nov 2025 15:11:09 +1100 Subject: [PATCH 2/2] Add python3-pip as build dependency for modern Python packaging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The modernized Python packaging using pyproject.toml and pip-based installation requires python3-pip to be available during the build process. Changes: - Add python3-pip to build/rpm/pcp.spec.in BuildRequires - Add python3-pip to build/rpm/redhat.spec BuildRequires - Add python3-pip to all distribution package lists (qa/admin/package-lists/*) Placement: after python3-pil/python3-pillow, before python3-prometheus_client (alphabetically correct position in package lists) This ensures CI builds can successfully use 'pip install' for building the Python extension modules across all supported platforms. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- build/rpm/pcp.spec.in | 1 + build/rpm/redhat.spec | 1 + qa/admin/package-lists/CentOS+8+x86_64 | 1 + qa/admin/package-lists/CentOS+Stream10+x86_64 | 1 + qa/admin/package-lists/CentOS+Stream8+x86_64 | 1 + qa/admin/package-lists/CentOS+Stream9+x86_64 | 1 + qa/admin/package-lists/Debian+10+i686 | 1 + qa/admin/package-lists/Debian+10+x86_64 | 1 + qa/admin/package-lists/Debian+11+i686 | 1 + qa/admin/package-lists/Debian+11+x86_64 | 1 + qa/admin/package-lists/Debian+12+aarch64 | 1 + qa/admin/package-lists/Debian+12+i686 | 1 + qa/admin/package-lists/Debian+12+x86_64 | 1 + qa/admin/package-lists/Debian+13+i686 | 1 + qa/admin/package-lists/Debian+13+x86_64 | 1 + qa/admin/package-lists/Debian+14+x86_64 | 1 + qa/admin/package-lists/Fedora+36+x86_64 | 1 + qa/admin/package-lists/Fedora+37+x86_64 | 1 + qa/admin/package-lists/Fedora+38+x86_64 | 1 + qa/admin/package-lists/Fedora+39+x86_64 | 1 + qa/admin/package-lists/Fedora+40+x86_64 | 1 + qa/admin/package-lists/Fedora+41+x86_64 | 1 + qa/admin/package-lists/Fedora+42+aarch64 | 1 + qa/admin/package-lists/Fedora+42+x86_64 | 1 + qa/admin/package-lists/Fedora+43+aarch64 | 1 + qa/admin/package-lists/Fedora+43+x86_64 | 1 + qa/admin/package-lists/Fedora+44+x86_64 | 1 + qa/admin/package-lists/MX+23.2+x86_64 | 1 + qa/admin/package-lists/MX+23.3+x86_64 | 1 + qa/admin/package-lists/MX+23.4+x86_64 | 1 + qa/admin/package-lists/MX+23.5+x86_64 | 1 + qa/admin/package-lists/MX+23.6+x86_64 | 1 + qa/admin/package-lists/RHEL+10+x86_64 | 1 + qa/admin/package-lists/RHEL+8+x86_64 | 1 + qa/admin/package-lists/RHEL+9+x86_64 | 1 + qa/admin/package-lists/Ubuntu+16.04+x86_64 | 1 + qa/admin/package-lists/Ubuntu+18.04+i686 | 1 + qa/admin/package-lists/Ubuntu+18.04+x86_64 | 1 + qa/admin/package-lists/Ubuntu+20.04+x86_64 | 1 + qa/admin/package-lists/Ubuntu+22.04+x86_64 | 1 + qa/admin/package-lists/Ubuntu+24.04+x86_64 | 1 + 41 files changed, 41 insertions(+) diff --git a/build/rpm/pcp.spec.in b/build/rpm/pcp.spec.in index e9eec8e22c8..236513e6dcf 100755 --- a/build/rpm/pcp.spec.in +++ b/build/rpm/pcp.spec.in @@ -760,6 +760,7 @@ Summary: Performance Co-Pilot (PCP) Python3 bindings and documentation URL: https://pcp.io BuildRequires: python3-devel BuildRequires: python3-setuptools +BuildRequires: python3-pip Requires: python3 Requires: pcp-libs = @package_version@ diff --git a/build/rpm/redhat.spec b/build/rpm/redhat.spec index a61c38453b4..3202c37a584 100644 --- a/build/rpm/redhat.spec +++ b/build/rpm/redhat.spec @@ -243,6 +243,7 @@ BuildRequires: zlib-devel %if !%{disable_python3} BuildRequires: python3-devel BuildRequires: python3-setuptools +BuildRequires: python3-pip %endif BuildRequires: ncurses-devel BuildRequires: readline-devel diff --git a/qa/admin/package-lists/CentOS+8+x86_64 b/qa/admin/package-lists/CentOS+8+x86_64 index cc0f0b595e7..10c7fd21362 100644 --- a/qa/admin/package-lists/CentOS+8+x86_64 +++ b/qa/admin/package-lists/CentOS+8+x86_64 @@ -93,6 +93,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pylint diff --git a/qa/admin/package-lists/CentOS+Stream10+x86_64 b/qa/admin/package-lists/CentOS+Stream10+x86_64 index b211b0a585c..4dcd0af2320 100644 --- a/qa/admin/package-lists/CentOS+Stream10+x86_64 +++ b/qa/admin/package-lists/CentOS+Stream10+x86_64 @@ -105,6 +105,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/CentOS+Stream8+x86_64 b/qa/admin/package-lists/CentOS+Stream8+x86_64 index fc665731819..114ea5b5ccf 100644 --- a/qa/admin/package-lists/CentOS+Stream8+x86_64 +++ b/qa/admin/package-lists/CentOS+Stream8+x86_64 @@ -100,6 +100,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pylint diff --git a/qa/admin/package-lists/CentOS+Stream9+x86_64 b/qa/admin/package-lists/CentOS+Stream9+x86_64 index 0bb261dc1ea..645032a1eed 100644 --- a/qa/admin/package-lists/CentOS+Stream9+x86_64 +++ b/qa/admin/package-lists/CentOS+Stream9+x86_64 @@ -105,6 +105,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/Debian+10+i686 b/qa/admin/package-lists/Debian+10+i686 index 0bdb0332287..b196cbedc48 100644 --- a/qa/admin/package-lists/Debian+10+i686 +++ b/qa/admin/package-lists/Debian+10+i686 @@ -112,6 +112,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Debian+10+x86_64 b/qa/admin/package-lists/Debian+10+x86_64 index 10d1b1e7459..7796e3d6856 100644 --- a/qa/admin/package-lists/Debian+10+x86_64 +++ b/qa/admin/package-lists/Debian+10+x86_64 @@ -110,6 +110,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Debian+11+i686 b/qa/admin/package-lists/Debian+11+i686 index 22d6e7d78ed..54e3031b17b 100644 --- a/qa/admin/package-lists/Debian+11+i686 +++ b/qa/admin/package-lists/Debian+11+i686 @@ -108,6 +108,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Debian+11+x86_64 b/qa/admin/package-lists/Debian+11+x86_64 index 09c84659774..b364abdfcb1 100644 --- a/qa/admin/package-lists/Debian+11+x86_64 +++ b/qa/admin/package-lists/Debian+11+x86_64 @@ -113,6 +113,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Debian+12+aarch64 b/qa/admin/package-lists/Debian+12+aarch64 index 723e2e6520b..d349847c240 100644 --- a/qa/admin/package-lists/Debian+12+aarch64 +++ b/qa/admin/package-lists/Debian+12+aarch64 @@ -113,6 +113,7 @@ python3-lxml python3-minimal python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Debian+12+i686 b/qa/admin/package-lists/Debian+12+i686 index 785cc600ac6..6d6080636b6 100644 --- a/qa/admin/package-lists/Debian+12+i686 +++ b/qa/admin/package-lists/Debian+12+i686 @@ -115,6 +115,7 @@ python3-minimal python3-openpyxl python3-pandas python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Debian+12+x86_64 b/qa/admin/package-lists/Debian+12+x86_64 index 1e0c3083653..e14f10ad937 100644 --- a/qa/admin/package-lists/Debian+12+x86_64 +++ b/qa/admin/package-lists/Debian+12+x86_64 @@ -120,6 +120,7 @@ python3-minimal python3-openpyxl python3-pandas python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Debian+13+i686 b/qa/admin/package-lists/Debian+13+i686 index 8c2d252900c..075c3125752 100644 --- a/qa/admin/package-lists/Debian+13+i686 +++ b/qa/admin/package-lists/Debian+13+i686 @@ -121,6 +121,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Debian+13+x86_64 b/qa/admin/package-lists/Debian+13+x86_64 index 19aca6f48a6..b3832577ebf 100644 --- a/qa/admin/package-lists/Debian+13+x86_64 +++ b/qa/admin/package-lists/Debian+13+x86_64 @@ -117,6 +117,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Debian+14+x86_64 b/qa/admin/package-lists/Debian+14+x86_64 index 09d5675ea63..37266dd61b9 100644 --- a/qa/admin/package-lists/Debian+14+x86_64 +++ b/qa/admin/package-lists/Debian+14+x86_64 @@ -115,6 +115,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Fedora+36+x86_64 b/qa/admin/package-lists/Fedora+36+x86_64 index 83f2edc0000..43cec74f8ee 100644 --- a/qa/admin/package-lists/Fedora+36+x86_64 +++ b/qa/admin/package-lists/Fedora+36+x86_64 @@ -103,6 +103,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/Fedora+37+x86_64 b/qa/admin/package-lists/Fedora+37+x86_64 index 3176b9404cb..93c6f94074e 100644 --- a/qa/admin/package-lists/Fedora+37+x86_64 +++ b/qa/admin/package-lists/Fedora+37+x86_64 @@ -105,6 +105,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/Fedora+38+x86_64 b/qa/admin/package-lists/Fedora+38+x86_64 index 399979d2618..a8221660955 100644 --- a/qa/admin/package-lists/Fedora+38+x86_64 +++ b/qa/admin/package-lists/Fedora+38+x86_64 @@ -107,6 +107,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/Fedora+39+x86_64 b/qa/admin/package-lists/Fedora+39+x86_64 index 2a8297fc31a..de733de17de 100644 --- a/qa/admin/package-lists/Fedora+39+x86_64 +++ b/qa/admin/package-lists/Fedora+39+x86_64 @@ -109,6 +109,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/Fedora+40+x86_64 b/qa/admin/package-lists/Fedora+40+x86_64 index e97d76588f1..4ba01079cec 100644 --- a/qa/admin/package-lists/Fedora+40+x86_64 +++ b/qa/admin/package-lists/Fedora+40+x86_64 @@ -110,6 +110,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/Fedora+41+x86_64 b/qa/admin/package-lists/Fedora+41+x86_64 index 8a184685648..1219ee453b5 100644 --- a/qa/admin/package-lists/Fedora+41+x86_64 +++ b/qa/admin/package-lists/Fedora+41+x86_64 @@ -109,6 +109,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/Fedora+42+aarch64 b/qa/admin/package-lists/Fedora+42+aarch64 index 6b043fedb3b..63b006f333c 100644 --- a/qa/admin/package-lists/Fedora+42+aarch64 +++ b/qa/admin/package-lists/Fedora+42+aarch64 @@ -105,6 +105,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/Fedora+42+x86_64 b/qa/admin/package-lists/Fedora+42+x86_64 index 705d1691ba0..0498bd5f0ff 100644 --- a/qa/admin/package-lists/Fedora+42+x86_64 +++ b/qa/admin/package-lists/Fedora+42+x86_64 @@ -109,6 +109,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/Fedora+43+aarch64 b/qa/admin/package-lists/Fedora+43+aarch64 index e970aaf0df8..3e3b48c0545 100644 --- a/qa/admin/package-lists/Fedora+43+aarch64 +++ b/qa/admin/package-lists/Fedora+43+aarch64 @@ -105,6 +105,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/Fedora+43+x86_64 b/qa/admin/package-lists/Fedora+43+x86_64 index 5c387056a86..d7af61d6faa 100644 --- a/qa/admin/package-lists/Fedora+43+x86_64 +++ b/qa/admin/package-lists/Fedora+43+x86_64 @@ -109,6 +109,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/Fedora+44+x86_64 b/qa/admin/package-lists/Fedora+44+x86_64 index 71e49efa442..3f85e904248 100644 --- a/qa/admin/package-lists/Fedora+44+x86_64 +++ b/qa/admin/package-lists/Fedora+44+x86_64 @@ -109,6 +109,7 @@ python3-lxml python3-openpyxl python3-pandas python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/MX+23.2+x86_64 b/qa/admin/package-lists/MX+23.2+x86_64 index 8fd25f405e2..cb0f93a1ddf 100644 --- a/qa/admin/package-lists/MX+23.2+x86_64 +++ b/qa/admin/package-lists/MX+23.2+x86_64 @@ -117,6 +117,7 @@ python3-lxml python3-minimal python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/MX+23.3+x86_64 b/qa/admin/package-lists/MX+23.3+x86_64 index 6c8b4d9f6fe..851a37dd52f 100644 --- a/qa/admin/package-lists/MX+23.3+x86_64 +++ b/qa/admin/package-lists/MX+23.3+x86_64 @@ -118,6 +118,7 @@ python3-lxml python3-minimal python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/MX+23.4+x86_64 b/qa/admin/package-lists/MX+23.4+x86_64 index 6c8b4d9f6fe..851a37dd52f 100644 --- a/qa/admin/package-lists/MX+23.4+x86_64 +++ b/qa/admin/package-lists/MX+23.4+x86_64 @@ -118,6 +118,7 @@ python3-lxml python3-minimal python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/MX+23.5+x86_64 b/qa/admin/package-lists/MX+23.5+x86_64 index 42e5d77b3b6..c5259be1bea 100644 --- a/qa/admin/package-lists/MX+23.5+x86_64 +++ b/qa/admin/package-lists/MX+23.5+x86_64 @@ -118,6 +118,7 @@ python3-lxml python3-minimal python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/MX+23.6+x86_64 b/qa/admin/package-lists/MX+23.6+x86_64 index 4666e3d0654..686df9b21ef 100644 --- a/qa/admin/package-lists/MX+23.6+x86_64 +++ b/qa/admin/package-lists/MX+23.6+x86_64 @@ -121,6 +121,7 @@ python3-minimal python3-openpyxl python3-pandas python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/RHEL+10+x86_64 b/qa/admin/package-lists/RHEL+10+x86_64 index 74458f43817..6ab950beba2 100644 --- a/qa/admin/package-lists/RHEL+10+x86_64 +++ b/qa/admin/package-lists/RHEL+10+x86_64 @@ -100,6 +100,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pillow +python3-pip python3-pandas python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/RHEL+8+x86_64 b/qa/admin/package-lists/RHEL+8+x86_64 index 3c4903ac264..723577d1bd7 100644 --- a/qa/admin/package-lists/RHEL+8+x86_64 +++ b/qa/admin/package-lists/RHEL+8+x86_64 @@ -95,6 +95,7 @@ python39-lxml # broken install on RHEL 8.10 (vm39) 20 Sep 2024 #python3-pandas python3-pillow +python3-pip python3-prometheus_client python39-psycopg2 python3-pylint diff --git a/qa/admin/package-lists/RHEL+9+x86_64 b/qa/admin/package-lists/RHEL+9+x86_64 index 54a7010cd27..58d3abbfe3c 100644 --- a/qa/admin/package-lists/RHEL+9+x86_64 +++ b/qa/admin/package-lists/RHEL+9+x86_64 @@ -102,6 +102,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pillow +python3-pip python3-prometheus_client python3-psycopg2 python3-pyarrow diff --git a/qa/admin/package-lists/Ubuntu+16.04+x86_64 b/qa/admin/package-lists/Ubuntu+16.04+x86_64 index 14767d06bf2..6e2b7b151ca 100644 --- a/qa/admin/package-lists/Ubuntu+16.04+x86_64 +++ b/qa/admin/package-lists/Ubuntu+16.04+x86_64 @@ -104,6 +104,7 @@ python3-lxml python3-minimal python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Ubuntu+18.04+i686 b/qa/admin/package-lists/Ubuntu+18.04+i686 index 31baaa95c54..c821f29b22d 100644 --- a/qa/admin/package-lists/Ubuntu+18.04+i686 +++ b/qa/admin/package-lists/Ubuntu+18.04+i686 @@ -108,6 +108,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Ubuntu+18.04+x86_64 b/qa/admin/package-lists/Ubuntu+18.04+x86_64 index 4a01849ad22..6757bdf137e 100644 --- a/qa/admin/package-lists/Ubuntu+18.04+x86_64 +++ b/qa/admin/package-lists/Ubuntu+18.04+x86_64 @@ -109,6 +109,7 @@ python3-libvirt python3-lxml python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Ubuntu+20.04+x86_64 b/qa/admin/package-lists/Ubuntu+20.04+x86_64 index f030fc825c8..b1c8c28b01b 100644 --- a/qa/admin/package-lists/Ubuntu+20.04+x86_64 +++ b/qa/admin/package-lists/Ubuntu+20.04+x86_64 @@ -117,6 +117,7 @@ python3-minimal python3-openpyxl python3-pandas python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Ubuntu+22.04+x86_64 b/qa/admin/package-lists/Ubuntu+22.04+x86_64 index d0403303a18..fb57b378339 100644 --- a/qa/admin/package-lists/Ubuntu+22.04+x86_64 +++ b/qa/admin/package-lists/Ubuntu+22.04+x86_64 @@ -117,6 +117,7 @@ python3-lxml python3-minimal python3-openpyxl python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo diff --git a/qa/admin/package-lists/Ubuntu+24.04+x86_64 b/qa/admin/package-lists/Ubuntu+24.04+x86_64 index d99343e9c59..fe458240707 100644 --- a/qa/admin/package-lists/Ubuntu+24.04+x86_64 +++ b/qa/admin/package-lists/Ubuntu+24.04+x86_64 @@ -120,6 +120,7 @@ python3-minimal python3-openpyxl python3-pandas python3-pil +python3-pip python3-prometheus-client python3-psycopg2 python3-pymongo