Bug 1650708

Summary: dnf - a case of a dependency mis-resolution
Product: [Fedora] Fedora Reporter: Michal Jaegermann <michal.jnn>
Component: pywebkitgtkAssignee: Michael DePaulo <mikedep333>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 29CC: dmach, ivazqueznet, mblaha, mhatina, mikedep333, packaging-team-maint, rpm-software-management, vmukhame, walters
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-27 19:59:39 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michal Jaegermann 2018-11-16 22:19:32 UTC
Description of problem:

This happened while prepraing a a Fedora 27 installation for an upgrade to Fedora 29. dnf with 'distro-sync' command reported the following:

 Problem 2: problem with installed package pywebkitgtk-1.1.8-13.fc26.x86_64
  - package pywebkitgtk-1.1.8-13.fc26.x86_64 requires libjavascriptcoregtk-1.0.so.0()(64bit), but none of the providers can be installed
  - gnucash-2.6.21-1.fc27.x86_64 does not belong to a distupgrade repository

Fair enought even if 'gnucash' occurence is somewhat mysterious.  OK, lets try 'dnf remove pywebkitgtk'.  That has the following, unexpected, effect:

Dependencies resolved.
==============================================================================================================================================
 Package                                          Arch                     Version                           Repository                  Size
==============================================================================================================================================
Removing:
 pywebkitgtk                                      x86_64                   1.1.8-13.fc26                     @fedora                    233 k
Removing dependent packages:
 gnucash                                          x86_64                   2.6.21-1.fc27                     @updates                    95 M
 gwenhywfar-gui-gtk2                              x86_64                   4.15.3-9.fc27                     @updates                   100 k
 perl-DateTime                                    x86_64                   2:1.45-1.fc27                     @updates                   360 k
 perl-DateTime-Locale                             noarch                   1.17-1.fc27                       @updates                    15 M
 perl-DateTime-TimeZone                           noarch                   2.21-1.fc27                       @updates                   6.5 M
 perl-DateTime-TimeZone-SystemV                   noarch                   0.010-2.fc27                      @fedora                     29 k
 perl-DateTime-TimeZone-Tzfile                    noarch                   0.011-2.fc27                      @fedora                     25 k
 perl-Devel-LexAlias                              x86_64                   0.05-15.fc27                      @fedora                     11 k
 perl-Eval-Closure                                noarch                   0.14-4.fc27                       @fedora                     33 k
 perl-Exception-Class                             noarch                   1.43-2.fc27                       @fedora                     88 k
 perl-Finance-Quote                               noarch                   1.47-1.fc27                       @updates                   658 k
 perl-HTML-TableExtract                           noarch                   2.13-6.fc27                       @fedora                     70 k
 perl-Package-Stash                               noarch                   0.37-8.fc27                       @fedora                     54 k
 perl-Params-Classify                             x86_64                   0.015-1.fc27                      @fedora                     48 k
 perl-Params-ValidationCompiler                   noarch                   0.26-1.fc27                       @updates                    77 k
 perl-Role-Tiny                                   noarch                   2.000005-5.fc27                   @fedora                     39 k
 perl-Specio                                      noarch                   0.40-1.fc27                       @fedora                    334 k
 perl-namespace-autoclean                         noarch                   0.28-9.fc27                       @fedora                     41 k
 perl-namespace-clean                             noarch                   0.27-4.fc27                       @fedora                     39 k
 xmlsec1-gnutls                                   x86_64                   1.2.23-4.fc27                     @fedora                    107 k
Removing unused dependencies:
 aqbanking                                        x86_64                   5.6.12-5.fc27                     @fedora                     18 M
 gnucash-docs                                     noarch                   2.6.20-1.fc27                     @updates                    90 M
 goffice08                                        x86_64                   0.8.17-18.fc27                    @fedora                    5.3 M
 gwenhywfar                                       x86_64                   4.15.3-9.fc27                     @updates                   1.4 M
 ktoblzcheck                                      x86_64                   1.44-9.fc27                       @fedora                    678 k
 libofx                                           x86_64                   0.9.10-5.fc27                     @updates                   618 k
 perl-B-Hooks-EndOfScope                          noarch                   0.21-5.fc27                       @fedora                     60 k
 perl-CGI                                         noarch                   4.37-1.fc27                       @updates                   538 k
 perl-Class-Data-Inheritable                      noarch                   0.08-25.fc27                      @fedora                    6.5 k
 perl-Class-Method-Modifiers                      noarch                   2.12-7.fc27                       @fedora                    100 k
 perl-Class-Singleton                             noarch                   1.5-8.fc27                        @fedora                     28 k
 perl-Date-ISO8601                                noarch                   0.005-1.fc27                      @fedora                     25 k
 perl-Devel-CallChecker                           x86_64                   0.008-2.fc27                      @fedora                     27 k
 perl-Devel-Caller                                x86_64                   2.06-14.fc27                      @fedora                     22 k
 perl-Devel-StackTrace                            noarch                   1:2.03-1.fc27                     @updates                    47 k
 perl-Dist-CheckConflicts                         noarch                   0.11-10.fc27                      @fedora                     32 k
 perl-DynaLoader-Functions                        noarch                   0.003-1.fc27                      @fedora                     20 k
 perl-HTML-Element-Extended                       noarch                   1.18-12.fc27                      @fedora                     69 k
 perl-JSON                                        noarch                   2.94-2.fc27                       @fedora                    244 k
 perl-LWP-Protocol-https                          noarch                   6.07-3.fc27                       @fedora                     12 k
 perl-Module-Implementation                       noarch                   0.09-14.fc27                      @fedora                     25 k
 perl-Package-Stash-XS                            x86_64                   0.28-16.fc27                      @fedora                     56 k
 perl-PadWalker                                   x86_64                   2.2-7.fc27                        @fedora                     36 k
 perl-Ref-Util                                    noarch                   0.203-3.fc27                      @fedora                     32 k
 perl-Ref-Util-XS                                 x86_64                   0.116-5.fc27                      @fedora                     41 k
 perl-Sub-Exporter-Progressive                    noarch                   0.001013-4.fc27                   @fedora                     28 k
 perl-Sub-Identify                                x86_64                   0.14-4.fc27                       @fedora                     28 k
 perl-Variable-Magic                              x86_64                   0.61-4.fc27                       @fedora                    119 k
 perltidy                                         noarch                   20170521-3.fc27                   @fedora                    1.5 M
 xmlsec1-gcrypt                                   x86_64                   1.2.23-4.fc27                     @fedora                    148 k

That is surely unexpected as none of packages in question depends on 'pywebkitgtk'.  In particular 'rpm -e pywebkitgtk' does not attempt to remove any other package and after execution of this command 'dnf repoquery --unsatisfied' does not have anything to report.  Moreover 'dnf distro-sync ...' does not have any issues with 'gnucash' anymore and proceeds to update it to gnucash-3.3-1.fc29


How reproducible:
Happens consistently on all installations (i686 and x86_64) where pywebkitgtk happens to be present.

Expected results:
No spurious "dependencies" resulting in unwanted attempts of package removal.

Additional info:
"Problem 1:" as reported by dnf was "package ghostscript-devel-9.22-6.fc27.x86_64 requires ...".  Indeed, ghostscript-9.25-1.fc29 dropped ghostscript-devel without supplying relevant Provides/Obsoletes but this is not a dnf issue.

By the nature of the problem dnf used during relevant updates was dnf-2.7.5-2.fc27, and libsolv-0.6.35-1.fc27, and I do not know how to attempt to reproduce the issue after upgrades but maybe somebody will know what happens here.

Comment 1 Michal Jaegermann 2018-11-16 23:13:42 UTC
On a system updated to F29, i.e. dnf-4.0.4-2.fc29 and libsolv-0.7.1-1.fc29, and after 'rpm -i --nodeps pywebkitgtk-1.1.8-13.fc26.x86_64.rpm' (which is the last available version of this package) running 'dnf remove pywebkitgtk' does _not_ trigger an avalanche of attempted removals as in the original report.

Comment 2 Marek Blaha 2018-11-19 07:09:38 UTC
The bunch of removed packages are dependencies of gnucash (which package is also about to be removed), not pywebkitgtk.
There probably are some packaging problems with pywebkitgtk - on my fully updated Fedora 29 I'm not able to even install it:

[root@f29]# dnf install pywebkitgtk
Error: 
 Problem: conflicting requests
  - nothing provides libjavascriptcoregtk-1.0.so.0()(64bit) needed by pywebkitgtk-1.1.8-13.fc26.x86_64
  - nothing provides libwebkitgtk-1.0.so.0()(64bit) needed by pywebkitgtk-1.1.8-13.fc26.x86_64

I'm reassigning this bug to libwebkitgtk.

Comment 3 Michal Jaegermann 2018-11-19 17:37:24 UTC
(In reply to Marek Blaha from comment #2)
> The bunch of removed packages are dependencies of gnucash (which package is
> also about to be removed), not pywebkitgtk

That is the first problem.  There is no good reason for gnucash to be removed in the first place.  In an absence of pywebkitgtk 'dnf distro-sync ...' updates gnucash to gnucash-3.3-1.fc29 without any fuss.
.
> There probably are some packaging problems with pywebkitgtk - on my fully
> updated Fedora 29 I'm not able to even install it:

This is not surprising either.  That is why when I was trying to see if a similar mess-up happens in F29, in comment #1, I was installing that
with 'rpm -i --nodeps pywebkitgtk-1.1.8-13.fc26.x86_64.rpm' as libjavascriptcoregtk-1.0.so.0()(64bit) is not available in F29 while it was in F27.
On F29 webkit2gtk3-js provides libjavascriptcoregtk-4.0.so.18()(64bit) and pywebkitgtk packages were NOT updated above F26.

> I'm reassigning this bug to libwebkitgtk.

It looks to me somewhat premature.  Try on F29 installation 'dnf remove gnucash'.  This attempt to remove, among other things,

perl-Date-ISO8601
perl-DateTime
perl-DateTime-Locale
perl-DateTime-TimeZone
perl-DateTime-TimeZone-SystemV
perl-DateTime-TimeZone-Tzfile

Are suggesting that these are dependent on gnucash?  dnf does not seem to agree with you. After 'rpm -e gnucash' a check with 'dnf repoquery --unsatisfied' does not lodge any complaints.

BTW - a list of packages slated for a removal in F29 after 'dnf remove gnucash' is _substantially_ shorter that the one quoted in the original report while these "missing" packages are still present in my installation.

Comment 4 Marek Blaha 2018-11-22 09:09:19 UTC
The problem is in pywebkitgtk. You can either remove it from system, or run 'dnf distro-sync --allowerasing' (which will allow solver to remove packages when solving problem). pywebkitgtk is not installable on F29 because of unmet dependencies libjavascriptcoregtk-1.0.so.0 and libwebkitgtk-1.0.so.0. This should be repaired in the first.

Regarding gnucash dependencies. These packages are not dependent on gnucash. They are dependencies of gnucash:

$ dnf repoquery --requires gnucash
.
.
perl(Finance::Quote)
.
.

$ dnf repoquery --requires perl-Finance-Quote
.
.
perl(DateTime)
.
.

$ dnf repoquery --requires perl-DateTime
.
.
perl(DateTime::Locale) >= 1.06
perl(DateTime::TimeZone) >= 2.02
.
.

And so on. When you run 'dnf remove gnucash', these packages are removed as they were installed as dependencies and no other package on system requires them. (See https://dnf.readthedocs.io/en/latest/command_ref.html#remove-command and clean_requirements_on_remove option description here: https://dnf.readthedocs.io/en/latest/conf_ref.html)

Comment 5 Ben Cotton 2019-10-31 20:28:27 UTC
This message is a reminder that Fedora 29 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 29 on 2019-11-26.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '29'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 29 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 6 Ben Cotton 2019-11-27 19:59:39 UTC
Fedora 29 changed to end-of-life (EOL) status on 2019-11-26. Fedora 29 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.