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: 2023-09-17 12:01 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.


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