Please branch and build python-zeep in epel9
Any chance you could branch it ? Do you need help ? It seems we are still missing few dependencies, I'll try to create a request for each missing Buildrequires: in the meanwhile.
I've requested a branch: https://pagure.io/releng/fedora-scm-requests/issue/45626
Ok, branch is available now and I've merged rawhide into it. First build failed because of missing dependencies: DEBUG util.py:443: No matches found for the following disable plugin patterns: local, spacewalk, versionlock DEBUG util.py:443: No matching package to install: 'python3-aioresponses' DEBUG util.py:443: No matching package to install: 'python3-mock' DEBUG util.py:443: No matching package to install: 'python3-pretend' DEBUG util.py:443: No matching package to install: 'python3-pytest-httpx' DEBUG util.py:443: No matching package to install: 'python3-requests-mock' DEBUG util.py:443: No matching package to install: 'python3-xmlsec' DEBUG util.py:443: Not all dependencies satisfied DEBUG util.py:443: Error: Some packages could not be found. https://kojipkgs.fedoraproject.org//work/tasks/6498/89316498/root.log Of course, python3-aioresponses is expected since it's only available as a dependency when it's marked as stable. Can you take care of the other dependencies? Or perhaps you already did - could you reference these other bug reports as bug dependencies then?
FYI, python-mock won't be branched for EPEL 9 because it's deprecated. See bug 2029156 (and all it's duplicates) for more details. Also, the mock dependency was dropped upstream in version 4.2.0, so as long as the epel9 build targets at least that version it won't need python-mock. https://github.com/mvantellingen/python-zeep/commit/1ddd118956870f9c68a24c9494207dc17441b416 I strongly encourage that python-zeep be ported to the new pyproject macros with automatically generated build dependencies, to avoid incorrect build requirements like this being carried forward after they are no longer needed. https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/
I'll look into the opt-in build-time dependency generator. However, that setup.py perhaps lists the dependencies in a challenging way. For example, in version 4.1, it lists under `tests_requires` a bunch of linting packages which aren't actually required for executing the _test_ suite. Also, tests do require python3-aioresponses which isn't listed in setup.py. So it looks like using the generator would require patching upstream, unless 4.2 already improved this. I'll have a look. FWIW, in the past I manually inspected setup.py dependencies on package upgrades to spot removed ones.
Ok, I looked a bit closer and indeed, in the 4.2 updated I missed the removal of python3-mock and python3-aioresponses. I just tested the build-time dependency generator locally and it seem to catch all the dependencies now. Also, it correctly excluded python3-cached_property since its a conditional dependency just needed for older Python versions. Two things that might need work: The auto-generator also adds python3-devel which seems superfluous because I still have `BuildRequires: python3-devel` to get all the python rpm macros. Thus: ``` $ rpm -qpR /home/juser/rpmbuild/SRPMS/python-zeep-4.2.0-2.fc37.src.rpm | sort | uniq -c | awk '$1 > 1' 2 python3-devel ``` Probably doesn't hurt in practice, because rpm/dnf hopefully deduplicate the dependencies lists before working on them. Also, the auto-generator includes all the version constraints from setup.py, e.g.: python3dist(requests-file) >= 1.5.1 python3dist(requests-toolbelt) >= 0.7.1 IIRC, at some point some Fedora packaging policy discouraged this? However, currently the packaging policy states the following, which seem to cover this: > Packages MAY make full use of the rich (or Boolean) dependency feature supported in RPM. https://docs.fedoraproject.org/en-US/packaging-guidelines/#_richboolean_dependencies Btw, the normal dependency python generator seems to be enabled, by default, nowadays. Thus, I can also remove this line: ``` %{?python_enable_dependency_generator} ```
I pushed an 4.2.1 update to rawhide which uses the new built-time dependency generator and thus doesn't depend on python-mock anymore: https://bodhi.fedoraproject.org/updates/FEDORA-2023-f965dc13a2
Hi, any news on this? We would need it in EPEL 9 too...
Hm, you can check out the list of issues this issue depends on (cf. the `Depends On:` at the top). Right now 2 open issues there block a python3-zeep build in EPEL 9.
FWIW, besides the missing dependency, current rawhide even fails early on epel9 due to some issues with the %pyproject_buildrequires macro: https://koji.fedoraproject.org/koji/taskinfo?taskID=137492906 i.e. even after adding a python3-tomli, manually. https://koji.fedoraproject.org/koji/taskinfo?taskID=137492906 ``` + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/zeep-4.3.2/pyproject-wheeldir --output /builddir/build/BUILD/python-zeep-4.3.2-1.el9.aarch64-pyproject-buildrequires -x test Handling setuptools from build-system.requires Requirement satisfied: setuptools (installed: setuptools 53.0.0) Handling wheel from build-system.requires Requirement satisfied: wheel (installed: wheel 0.36.2) running egg_info creating UNKNOWN.egg-info writing UNKNOWN.egg-info/PKG-INFO writing dependency_links to UNKNOWN.egg-info/dependency_links.txt writing top-level names to UNKNOWN.egg-info/top_level.txt writing manifest file 'UNKNOWN.egg-info/SOURCES.txt' reading manifest file 'UNKNOWN.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' warning: no files found matching 'setup.py' warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution warning: no previously-included files matching '.DS_Store' found anywhere in distribution adding license file 'LICENSE' writing manifest file 'UNKNOWN.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.36.2) running dist_info writing UNKNOWN.egg-info/PKG-INFO writing dependency_links to UNKNOWN.egg-info/dependency_links.txt writing top-level names to UNKNOWN.egg-info/top_level.txt reading manifest file 'UNKNOWN.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' warning: no files found matching 'setup.py' warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution warning: no previously-included files matching '.DS_Store' found anywhere in distribution adding license file 'LICENSE' writing manifest file 'UNKNOWN.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/zeep-4.3.2/UNKNOWN.dist-info' adding license file "LICENSE" (matched pattern "LICEN[CS]E*") + cat /builddir/build/BUILD/python-zeep-4.3.2-1.el9.aarch64-pyproject-buildrequires + rm -rfv UNKNOWN.dist-info/ removed 'UNKNOWN.dist-info/top_level.txt' removed 'UNKNOWN.dist-info/METADATA' removed 'UNKNOWN.dist-info/LICENSE' removed directory 'UNKNOWN.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-zeep-4.3.2-1.el9.buildreqs.nosrc.rpm ``` Followed by: ``` + /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-zeep-4.3.2-1.el9.aarch64-pyproject-files --output-modules /builddir/build/BUILD/python-zeep-4.3.2-1.el9.aarch64-pyproject-modules --buildroot /builddir/build/BUILDROOT/python-zeep-4.3.2-1.el9.aarch64 --sitelib /usr/lib/python3.9/site-packages --sitearch /usr/lib64/python3.9/site-packages --python-version 3.9 --pyproject-record /builddir/build/BUILD/python-zeep-4.3.2-1.el9.aarch64-pyproject-record --prefix /usr -l zeep Traceback (most recent call last): File "/usr/lib/rpm/redhat/pyproject_save_files.py", line 889, in <module> main(cli_args) File "/usr/lib/rpm/redhat/pyproject_save_files.py", line 835, in main file_section, module_names = pyproject_save_files_and_modules( File "/usr/lib/rpm/redhat/pyproject_save_files.py", line 816, in pyproject_save_files_and_modules generate_file_list(paths_dict, globs, include_auto) File "/usr/lib/rpm/redhat/pyproject_save_files.py", line 623, in generate_file_list raise ValueError(f"Globs did not match any module: {missed_text}") ValueError: Globs did not match any module: zeep ```