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
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).
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?
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
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.
As you noted, maybe the error forced the builddep command to quit.
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)
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.
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
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...
Oh, and one missing step in the reproducer: 1.5. made sure that sqlite from updates-testing is installed
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)
*** Bug 1271099 has been marked as a duplicate of this bug. ***
This package has changed ownership in the Fedora Package Database. Reassigning to the new owner of this component.
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.
I don't think this was resolved ...
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?
(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.
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.