Bug 2076031 - The addition python3-ipython recommendation creates an enormous set of new dependencies
Summary: The addition python3-ipython recommendation creates an enormous set of new de...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: python-netaddr
Version: 36
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: John Eckersberg
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-04-17 07:57 UTC by Gordon Messmer
Modified: 2022-05-22 01:23 UTC (History)
5 users (show)

Fixed In Version: python-netaddr-0.8.0-8.fc37 python-netaddr-0.8.0-8.fc36 python-netaddr-0.8.0-8.fc35
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-05-13 18:12:14 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker FREEIPA-8175 0 None None None 2022-04-19 13:37:47 UTC

Description Gordon Messmer 2022-04-17 07:57:56 UTC
Description of problem:

When updating python3-netaddr on F36 beta, dnf will attempt to install nearly 300 new packages.

Please reconsider this addition.

Version-Release number of selected component (if applicable):
0.8.0-7.fc36

How reproducible:
Always

Steps to Reproduce:
1. dnf update python3-netaddr
2.
3.

Actual results:
Transaction Summary                                                                                                                                                                                                                           
=====================
Install  284 Packages                                                                                                                                                                                                                         
Upgrade    1 Package 

Expected results:


Additional info:

Comment 1 Gordon Messmer 2022-04-18 00:49:55 UTC
I've seen #2074313, and I think the difference between my system and the systems where the new recommended package was tested is that I have /usr/bin/dvipng installed:

# dnf repoquery --requires python3-ipython
...
(tex(amsmath.sty) if /usr/bin/dvipng)
(tex(amssymb.sty) if /usr/bin/dvipng)
(tex(amsthm.sty) if /usr/bin/dvipng)
(tex(bm.sty) if /usr/bin/dvipng)
...

If it is at all possible, please consider splitting the netaddr shell out into its own sub-package with the recommend for ipython.

Comment 2 Orion Poplawski 2022-04-19 13:25:16 UTC
Fixing component.  python3-netaddr is for EPEL only.

Comment 3 John Eckersberg 2022-04-19 14:52:51 UTC
I'm not really sure how you're getting nearly 300 packages.  If I start with a f36 container (which should be rather minimal?) I only end up with 43:

$ podman run -it fedora:36
Resolved "fedora" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull registry.fedoraproject.org/fedora:36...
Getting image source signatures
Copying blob 7c40e6abf9d5 done
Copying config 73fb4ef8fb done
Writing manifest to image destination
Storing signatures
[root@4f67a9a5f2b0 /]# dnf install python3-netaddr
Fedora 36 - x86_64                                                                                                                                              7.3 MB/s |  64 MB     00:08
Fedora 36 openh264 (From Cisco) - x86_64                                                                                                                        759  B/s | 2.5 kB     00:03
Fedora Modular 36 - x86_64                                                                                                                                      835 kB/s | 2.0 MB     00:02
Fedora 36 - x86_64 - Updates                                                                                                                                    597  B/s | 257  B     00:00
Fedora Modular 36 - x86_64 - Updates                                                                                                                            299  B/s | 257  B     00:00
Fedora 36 - x86_64 - Test Updates                                                                                                                               3.7 MB/s |  13 MB     00:03
Fedora Modular 36 - x86_64 - Test Updates                                                                                                                       1.5 MB/s | 2.3 MB     00:01
Dependencies resolved.
================================================================================================================================================================================================
 Package                                                Architecture                       Version                                            Repository                                   Size
================================================================================================================================================================================================
Installing:
 python3-netaddr                                        noarch                             0.8.0-7.fc36                                       updates-testing                             1.5 M
Installing dependencies:
 black                                                  noarch                             22.3.0-1.fc36                                      updates-testing                             248 k
 c-ares                                                 x86_64                             1.17.2-2.fc36                                      fedora                                      106 k
 llhttp                                                 x86_64                             6.0.6-6.fc36                                       fedora                                       25 k
 python3-aiohttp                                        x86_64                             3.8.1-3.fc36                                       fedora                                      555 k
 python3-aiosignal                                      noarch                             1.2.0-3.fc36                                       fedora                                       16 k
 python3-asttokens                                      noarch                             2.0.5-3.fc36                                       fedora                                       37 k
 python3-async-timeout                                  noarch                             4.0.2-1.fc36                                       fedora                                       18 k
 python3-attrs                                          noarch                             21.4.0-2.fc36                                      fedora                                       94 k
 python3-backcall                                       noarch                             0.1.0-15.fc36                                      fedora                                       26 k
 python3-cffi                                           x86_64                             1.15.0-5.fc36                                      fedora                                      243 k
 python3-charset-normalizer                             noarch                             2.0.11-1.fc36                                      fedora                                       75 k
 python3-click                                          noarch                             8.0.4-2.fc36                                       fedora                                      177 k
 python3-decorator                                      noarch                             5.1.1-2.fc36                                       fedora                                       27 k
 python3-executing                                      noarch                             0.8.2-2.fc36                                       fedora                                       34 k
 python3-frozenlist                                     x86_64                             1.3.0-2.fc36                                       fedora                                       44 k
 python3-idna                                           noarch                             3.3-2.fc36                                         fedora                                       99 k
 python3-jedi                                           noarch                             0.18.1-2.fc36                                      fedora                                      1.1 M
 python3-matplotlib-inline                              noarch                             0.1.2-4.fc36                                       fedora                                       20 k
 python3-multidict                                      x86_64                             5.1.0-5.fc36                                       fedora                                       59 k
 python3-mypy_extensions                                noarch                             0.4.3-8.fc36                                       fedora                                       15 k
 python3-parso                                          noarch                             0.8.2^1.da3a748-2.fc36                             fedora                                      153 k
 python3-pathspec                                       noarch                             0.9.0-2.fc36                                       fedora                                       54 k
 python3-pexpect                                        noarch                             4.8.0-10.fc36                                      fedora                                      134 k
 python3-pickleshare                                    noarch                             0.7.5-8.fc36                                       fedora                                       18 k
 python3-platformdirs                                   noarch                             2.3.0-4.fc36                                       fedora                                       30 k
 python3-ply                                            noarch                             3.11-15.fc36                                       fedora                                      104 k
 python3-prompt-toolkit                                 noarch                             3.0.24-2.fc36                                      fedora                                      621 k
 python3-ptyprocess                                     noarch                             0.6.0-15.fc36                                      fedora                                       29 k
 python3-pure-eval                                      noarch                             0.2.2-1.fc36                                       fedora                                       28 k
 python3-pycares                                        x86_64                             4.1.2-1.fc36                                       fedora                                       55 k
 python3-pycparser                                      noarch                             2.20-6.fc36                                        fedora                                      126 k
 python3-pygments                                       noarch                             2.11.2-1.fc36                                      fedora                                      2.0 M
 python3-setuptools                                     noarch                             59.6.0-2.fc36                                      fedora                                      936 k
 python3-six                                            noarch                             1.16.0-5.fc36                                      fedora                                       36 k
 python3-stack-data                                     noarch                             0.1.4-2.fc36                                       fedora                                       40 k
 python3-tomli                                          noarch                             1.2.3-1.fc36                                       fedora                                       29 k
 python3-traitlets                                      noarch                             5.1.1-3.fc36                                       fedora                                      210 k
 python3-wcwidth                                        noarch                             0.2.5-7.fc36                                       fedora                                       41 k
 python3-yarl                                           x86_64                             1.7.2-3.fc36                                       fedora                                      124 k
Installing weak dependencies:
 black+d                                                noarch                             22.3.0-1.fc36                                      updates-testing                             9.6 k
 python3-aiodns                                         noarch                             3.0.0-3.fc36                                       fedora                                       18 k
 python3-ipython                                        noarch                             8.0.1-1.fc36                                       fedora                                      765 k

Transaction Summary
================================================================================================================================================================================================
Install  43 Packages

Total download size: 10 M
Installed size: 48 M


Re: bug 2074313, the point was to make python3-ipython a weak dependency.  If you don't want to install it, you're able to ignore it via dnf either with --exclude or adding it to dnf.conf.  Is this not sufficient?

$ podman run -it fedora:36 dnf install --exclude python3-ipython python3-netaddr
Fedora 36 - x86_64                                                                                                                                              7.9 MB/s |  64 MB     00:08
Fedora 36 openh264 (From Cisco) - x86_64                                                                                                                        1.1 kB/s | 2.5 kB     00:02
Fedora Modular 36 - x86_64                                                                                                                                      1.1 MB/s | 2.0 MB     00:01
Fedora 36 - x86_64 - Updates                                                                                                                                    375  B/s | 257  B     00:00
Fedora Modular 36 - x86_64 - Updates                                                                                                                            280  B/s | 257  B     00:00
Fedora 36 - x86_64 - Test Updates                                                                                                                               4.8 MB/s |  13 MB     00:02
Fedora Modular 36 - x86_64 - Test Updates                                                                                                                       3.1 MB/s | 2.3 MB     00:00
Dependencies resolved.
================================================================================================================================================================================================
 Package                                          Architecture                            Version                                        Repository                                        Size
================================================================================================================================================================================================
Installing:
 python3-netaddr                                  noarch                                  0.8.0-7.fc36                                   updates-testing                                  1.5 M

Transaction Summary
================================================================================================================================================================================================
Install  1 Package

Total download size: 1.5 M
Installed size: 9.4 M

Comment 4 Gordon Messmer 2022-04-22 07:51:38 UTC
> I'm not really sure how you're getting nearly 300 packages

I have dvipng installed:

$ podman run -it --rm fedora:35
[root@6aab5dd5a5b8 /]# dnf install texlive-dvipng python3-netaddr --enablerepo=updates-testing
...
Transaction Summary
========================================================================================================
Install  545 Packages

Total download size: 236 M
Installed size: 605 M

> Is this not sufficient?

Maybe it is.  My initial reaction is that python3-netaddr is a dependency of ipa-client, so probably widely installed.  Recommends *can* be excluded, but they're installed by default.  Adding a large set of dependencies installed by default isn't great, but if dvipng isn't widely installed, then maybe the impact is limited.

In any case, I thought it was worth consideration before pushing to stable.

Comment 5 John Eckersberg 2022-04-22 19:42:24 UTC
(In reply to Gordon Messmer from comment #4)
> > I'm not really sure how you're getting nearly 300 packages
> 
> I have dvipng installed:
> 
> $ podman run -it --rm fedora:35
> [root@6aab5dd5a5b8 /]# dnf install texlive-dvipng python3-netaddr
> --enablerepo=updates-testing
> ...
> Transaction Summary
> =============================================================================
> ===========================
> Install  545 Packages
> 
> Total download size: 236 M
> Installed size: 605 M
> 
> > Is this not sufficient?
> 
> Maybe it is.  My initial reaction is that python3-netaddr is a dependency of
> ipa-client, so probably widely installed.  Recommends *can* be excluded, but
> they're installed by default.  Adding a large set of dependencies installed
> by default isn't great, but if dvipng isn't widely installed, then maybe the
> impact is limited.
> 
> In any case, I thought it was worth consideration before pushing to stable.

Ok I see what you mean now:

$ podman run -it --rm fedora:36
[root@c4a647eb31c2 /]# dnf install texlive-dvipng
...
Install  119 Packages
...
[root@c4a647eb31c2 /]# dnf install python3-netaddr
...
Install  43 Packages
...
[root@c4a647eb31c2 /]# dnf install texlive-dvipng python3-netaddr
...
Install  566 Packages
...

I don't understand that at all.  I would think if texlive-dvipng installs 119 pkgs and python3-netaddr installs 43 packages, then installing both should require *at most* 162 (119+43) packages, maybe less if there is commonality between the two.  That looks like some sort of bug in the resolver, or some sort of unexpected edge case.  I won't push the f35/f36 updates to stable until I understand exactly why this is happening.

Comment 6 Gordon Messmer 2022-04-22 19:52:48 UTC
https://src.fedoraproject.org/rpms/ipython/blob/rawhide/f/ipython.spec#_105

ipython includes conditional dependencies, so its dependency set is much larger if dvipng is also installed.

Comment 7 John Eckersberg 2022-04-22 20:28:28 UTC
(In reply to Gordon Messmer from comment #6)
> https://src.fedoraproject.org/rpms/ipython/blob/rawhide/f/ipython.spec#_105
> 
> ipython includes conditional dependencies, so its dependency set is much
> larger if dvipng is also installed.

Gotcha.  And I see now that you already said that in comment #1.  I totally missed that somehow.

So... yeah.  This is not ideal.  I'll see about splitting /usr/bin/netaddr out into a python3-netaddr-bin package.

Comment 8 Fedora Update System 2022-05-13 18:10:03 UTC
FEDORA-2022-9513579fd6 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-9513579fd6

Comment 9 Fedora Update System 2022-05-13 18:12:14 UTC
FEDORA-2022-9513579fd6 has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 10 Fedora Update System 2022-05-13 18:26:53 UTC
FEDORA-2022-522546aa59 has been submitted as an update to Fedora 36. https://bodhi.fedoraproject.org/updates/FEDORA-2022-522546aa59

Comment 11 Fedora Update System 2022-05-13 18:36:39 UTC
FEDORA-2022-b8856debaa has been submitted as an update to Fedora 35. https://bodhi.fedoraproject.org/updates/FEDORA-2022-b8856debaa

Comment 12 Fedora Update System 2022-05-14 02:15:25 UTC
FEDORA-2022-522546aa59 has been pushed to the Fedora 36 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2022-522546aa59`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-522546aa59

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 13 Fedora Update System 2022-05-14 02:24:34 UTC
FEDORA-2022-b8856debaa has been pushed to the Fedora 35 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2022-b8856debaa`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-b8856debaa

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 14 Fedora Update System 2022-05-22 01:18:00 UTC
FEDORA-2022-522546aa59 has been pushed to the Fedora 36 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 15 Fedora Update System 2022-05-22 01:23:38 UTC
FEDORA-2022-b8856debaa has been pushed to the Fedora 35 stable repository.
If problem still persists, please make note of it in this bug report.


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