Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1224466 - [UX] RFE: report all dependency issues find during dependency resolution
Summary: [UX] RFE: report all dependency issues find during dependency resolution
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf
Version: rawhide
Hardware: Unspecified
OS: Unspecified
low
unspecified
Target Milestone: ---
Assignee: rpm-software-management
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1271099 (view as bug list)
Depends On: 1549851 1148627
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-05-23 09:06 UTC by Nick Coghlan
Modified: 2018-02-27 21:55 UTC (History)
17 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-06-05 14:40:24 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Nick Coghlan 2015-05-23 09:06:04 UTC
Historically, the system Python's build dependencies were sufficient to build upstream CPython (except for _tkinter).

Currently, that fails with the following:

The necessary bits to build these optional modules were not found:
_curses               _curses_panel         _dbm               
_gdbm                 _lzma                 _sqlite3           
_ssl                  _tkinter              readline           
zlib                                                           

This occurs even after doing "sudo dnf builddep python3", "sudo dnf builddep python3-devel" and "sudo dnf install python3-devel"

sqlite3 looks to be an actual issue with the sqlite-devel package being old:

$ sudo dnf install sqlite-devel
Error: package sqlite-devel-3.8.9-1.fc22.i686 requires sqlite = 3.8.9-1.fc22, but none of the providers can be installed
$ rpm -qa sqlite
sqlite-3.8.10.1-1.fc22.x86_64

The following install command:
$ sudo dnf install zlib-devel gdbm-devel lzma-devel readline-devel

Gets the build report to:

The necessary bits to build these optional modules were not found:
_lzma                 _sqlite3              _ssl               
_tkinter                                                       

Adding the OpenSSL headers deals with the _ssl module:
$ sudo dnf install openssl-devel

It's actually xz-devel that is needed for the _lzma module:

$ sudo dnf install xz-devel

And finally, tk-devel is needed for _tkinter (this is installed as a separate RPM, python3-tkinter):

$ sudo dnf install tk-devel

Comment 1 Robert Kuska 2015-05-25 06:28:23 UTC
There are current BR of python3:
> $ grep 'BuildRequires' python3.spec
BuildRequires: autoconf
BuildRequires: bluez-libs-devel
BuildRequires: bzip2
BuildRequires: bzip2-devel
BuildRequires: db4-devel >= 4.7
BuildRequires: expat-devel >= 2.1.0
BuildRequires: findutils
BuildRequires: gcc-c++
BuildRequires: gdbm-devel
BuildRequires: glibc-devel
BuildRequires: gmp-devel
BuildRequires: libffi-devel
BuildRequires: libGL-devel
BuildRequires: libX11-devel
BuildRequires: ncurses-devel
BuildRequires: net-tools
BuildRequires: openssl-devel
BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: sqlite-devel
BuildRequires: systemtap-sdt-devel
BuildRequires: tar
BuildRequires: tcl-devel
BuildRequires: tix-devel
BuildRequires: tk-devel
BuildRequires: valgrind-devel
BuildRequires: xz-devel
BuildRequires: zlib-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip


To get a build dependencies via dnf one should use dnf builddep python3 as these build dependencies are listed for a python3 itself (python3-devel is meant to be used for building python3 modules not python3 itself).

Comment 2 Nick Coghlan 2015-05-25 06:39:34 UTC
That's very odd, as I'm sure I did "sudo dnf builddep python3", but the devel libraries listed above were all still missing.

Perhaps if the sqlite and sqlite-devel packages getting out of sync can be explained, it might shed light on what might have happened with the others?

Comment 3 Nick Coghlan 2015-05-25 06:40:48 UTC
Sorry, "listed above" was ambiguous. I meant the extra ones I had to install to get the optional modules building:

zlib-devel
xz-devel
openssl-devel
gdbm-devel
readline-devel

Comment 4 Robert Kuska 2015-05-25 06:59:11 UTC
I didn't notice in your report that you did use builddep python3 aswell, I am sorry.

Anyway, build requires are correctly listed so I would expect the builddep command to work proprely.

From dnf help:

builddep                  Install build dependencies for packagei or spec file

(that typo is from the help text) so I tried to use specfile also:

> $ sudo dnf builddep ~/scm/python3/python3.spec 
Last metadata expiration check performed 0:44:15 ago on Mon May 25 08:11:34 2015.
Package bzip2-1.0.6-14.fc22.x86_64 is already installed, skipping.
Package findutils-1:4.5.14-3.fc22.x86_64 is already installed, skipping.
Package gdbm-devel-1.11-4.fc22.x86_64 is already installed, skipping.
Package glibc-devel-2.21-5.fc22.x86_64 is already installed, skipping.
Package net-tools-2.0-0.31.20141124git.fc22.x86_64 is already installed, skipping.
Package pkgconfig-1:0.28-8.fc22.x86_64 is already installed, skipping.
Package python3-pip-6.0.8-1.fc22.noarch is already installed, skipping.
Package python3-setuptools-12.0.3-1.fc22.noarch is already installed, skipping.
Package systemtap-sdt-devel-2.7-2.fc22.x86_64 is already installed, skipping.
Package tar-2:1.28-3.fc22.x86_64 is already installed, skipping.
Error: package sqlite-devel-3.8.9-1.fc22.i686 requires sqlite = 3.8.9-1.fc22, but none of the providers can be installed

with the same result as with dnf builddep python3.


It looks like the command is from dnf-plugins-core, main contact for this package is packaging-team-maint, ccing.

Comment 5 Robert Kuska 2015-05-25 07:01:59 UTC
As you noted, maybe the error forced the builddep command to quit.

Comment 6 Robert Kuska 2015-05-25 07:14:03 UTC
So, I've fixed the problem with sqlite-devel (sudo dnf install sqlite-devel --enable=updates-testing) and run builddep again.


http://fpaste.org/225247/

All dependencies should be there.


(removing cc)

Comment 7 Nick Coghlan 2015-05-26 03:00:39 UTC
Thanks for tracking that down. I think there may still be a dnf UX bug report here - it really wasn't at all clear to me that "dnf builddep" had silently skipped installing the other build dependencies.

Comment 8 Robert Kuska 2015-05-26 07:27:59 UTC
I agree.

I am changing the component to dnf-plugins-core*.


*
> $ rpm -ql dnf-plugins-core | grep builddep                                   
/usr/share/man/man8/dnf.plugin.builddep.8.gz

Comment 9 Radek Holy 2015-05-26 08:59:44 UTC
Hi, to reproduce the problem, I've:

1. made sure that sqlite-devel, openssl-devel, zlib-devel, xz-devel is not installed
2. run dnf --disablerepo=updates-testing builddep python3

It exited with 1. The output was:
    enabling fedora-source repository
    enabling updates-source repository
    Last metadata expiration check performed 0:08:59 ago on Tue May 26 10:31:13 2015.
    Package bzip2-1.0.6-14.fc22.x86_64 is already installed, skipping.
    Package bzip2-devel-1.0.6-14.fc22.x86_64 is already installed, skipping.
    Package expat-devel-2.1.0-10.fc22.x86_64 is already installed, skipping.
    Package findutils-1:4.5.14-3.fc22.x86_64 is already installed, skipping.
    Package gcc-c++-5.1.1-1.fc22.x86_64 is already installed, skipping.
    Package glibc-devel-2.21-5.fc22.x86_64 is already installed, skipping.
    Package pkgconfig-1:0.28-8.fc22.x86_64 is already installed, skipping.
    Package python3-pip-6.0.8-1.fc22.noarch is already installed, skipping.
    Package python3-setuptools-12.0.3-1.fc22.noarch is already installed, skipping.
    Package tar-2:1.28-3.fc22.x86_64 is already installed, skipping.
    Error: package sqlite-devel-3.8.9-1.fc22.i686 requires sqlite = 3.8.9-1.fc22, but none of the providers can be installed

So, nothing was installed, a problem was reported and the exit status was non-zero.

Can you please elaborate on what else do you expect? Maybe I just don't understand what do you mean by "skipping" dependencies...

Comment 10 Radek Holy 2015-05-26 09:13:12 UTC
Oh, and one missing step in the reproducer:
1.5. made sure that sqlite from updates-testing is installed

Comment 11 Nick Coghlan 2015-05-27 06:33:59 UTC
I've updated the issue title to better reflect that this is now an RFE to provide some indication that there was other work that wasn't even attempted due to the already detected failure.

The fact the command bailed out the way it did meant that I had the impression that sqlite-devel was the only dependency missing when there were actually a whole raft of other dependencies that hadn't even been checked for availability yet. (This is significant for CPython, as many of its dependencies only relate to building particular extension modules in the standard library)

This can be seen in the above output where the only messages prior to the sqlite-devel failure are "already installed" ones - there's no hint that there are many more build dependencies not yet considered which may or may not be installed.

There was also no prompt to consider "-x sqlite-devel" as a possible way of allowing the rest of the transaction to proceed. (That would also address the issue, as if I'd thought of doing that at the time, I would have done it and the rest of the dependencies would likely have installed without any problems)

Comment 12 Honza Silhan 2015-10-21 13:32:03 UTC
*** Bug 1271099 has been marked as a duplicate of this bug. ***

Comment 13 Fedora Admin XMLRPC Client 2016-07-08 09:31:52 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 14 Fedora End Of Life 2016-07-19 14:13:12 UTC
Fedora 22 changed to end-of-life (EOL) status on 2016-07-19. Fedora 22 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.

Comment 15 Vít Ondruch 2016-07-20 10:21:37 UTC
I don't think this was resolved ...

Comment 16 Jaroslav Mracek 2017-04-11 15:10:17 UTC
I create a pull request that probably could help (https://github.com/rpm-software-management/dnf/pull/782). I create repository for fc26 for test purpose (https://copr.fedorainfracloud.org/coprs/jmracek/transaction-problems/). To install it you need to enable following repository: "dnf copr enable rpmsoftwaremanagement/dnf-nightly". Please can you provide a response if the patch solved the request?

Comment 17 Nick Coghlan 2017-06-05 11:54:03 UTC
(Sorry for the delayed response)

I don't currently have an environment where I can easily reproduce the original problem, but from reading the linked patch, I agree it addresses this RFE.

Comment 18 Jaroslav Mracek 2017-06-05 14:40:24 UTC
Thanks. The patch was released in dnf-2.5.0-2 for rawhide and Fc26. Please if you will be able reproduce the problem with dnf-2.5.0+, don't hesitate to reopen the bug report.


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