Bug 2079681 - Please branch and build python-zeep in epel9
Summary: Please branch and build python-zeep in epel9
Keywords:
Status: NEW
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: python-zeep
Version: epel9
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Georg Sauthoff
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 2125979 2043725 2125977 2125978 2125980
Blocks: 2079071
TreeView+ depends on / blocked
 
Reported: 2022-04-28 05:30 UTC by Spike
Modified: 2025-09-26 13:48 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Spike 2022-04-28 05:30:51 UTC
Please branch and build python-zeep in epel9

Comment 1 alphacc 2022-06-27 07:20:02 UTC
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.

Comment 2 Georg Sauthoff 2022-07-09 11:07:24 UTC
I've requested a branch: https://pagure.io/releng/fedora-scm-requests/issue/45626

Comment 3 Georg Sauthoff 2022-07-10 09:43:35 UTC
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?

Comment 4 Carl George 🤠 2023-02-15 20:22:14 UTC
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/

Comment 5 Georg Sauthoff 2023-03-25 19:15:45 UTC
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.

Comment 6 Georg Sauthoff 2023-03-25 20:14:23 UTC
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}
```

Comment 7 Georg Sauthoff 2023-03-26 12:49:12 UTC
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

Comment 8 Amélie D 2023-09-12 09:33:31 UTC
Hi, any news on this? We would need it in EPEL 9 too...

Comment 9 Georg Sauthoff 2023-09-17 12:01:41 UTC
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.

Comment 10 Georg Sauthoff 2025-09-26 13:48:35 UTC
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
```


Note You need to log in before you can comment on or make changes to this bug.