Bug 1631804

Summary: libcurl update breaks dnf (missing dep?)
Product: [Fedora] Fedora Reporter: Denys Vlasenko <dvlasenk>
Component: curlAssignee: Kamil Dudka <kdudka>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: john.j5live, kdudka, paul
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: curl-7.61.1-2.fc30 curl-7.61.1-2.fc29 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-10-07 21:00:33 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 Denys Vlasenko 2018-09-21 15:21:37 UTC
As of today, I have the latest dnf installed:

# dnf update dnf
Last metadata expiration check: 1:46:00 ago on Fri 21 Sep 2018 03:31:40 PM CEST.
Dependencies resolved.
Nothing to do.
Complete!

My libcurl is:
# rpm -qi libcurl
Name        : libcurl
Version     : 7.59.0
Release     : 7.fc28

If I would update to latest libcurl:

# dnf update libcurl
Last metadata expiration check: 1:48:04 ago on Fri 21 Sep 2018 03:31:40 PM CEST.
Dependencies resolved.
================================================================================
 Package          Arch            Version                Repository        Size
================================================================================
Upgrading:
 libcurl          x86_64          7.61.1-1.fc30          rawhide          246 k
Is this ok [y/N]: Y


then "dnf" breaks on the next run:

# dnf
Traceback (most recent call last):
  File "/usr/lib64/python3.7/site-packages/libdnf/conf.py", line 14, in swig_import_helper
    return importlib.import_module(mname)
  File "/usr/lib64/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 583, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 1043, in create_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: /lib64/libcurl.so.4: undefined symbol: psl_latest

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/bin/dnf", line 57, in <module>
    from dnf.cli import main
  File "/usr/lib/python3.7/site-packages/dnf/__init__.py", line 30, in <module>
    import dnf.base
  File "/usr/lib/python3.7/site-packages/dnf/base.py", line 29, in <module>
    import libdnf.transaction
  File "/usr/lib64/python3.7/site-packages/libdnf/__init__.py", line 3, in <module>
    from . import conf
  File "/usr/lib64/python3.7/site-packages/libdnf/conf.py", line 17, in <module>
    _conf = swig_import_helper()
  File "/usr/lib64/python3.7/site-packages/libdnf/conf.py", line 16, in swig_import_helper
    return importlib.import_module('_conf')
  File "/usr/lib64/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_conf'

Comment 1 Paul Howarth 2018-09-21 16:47:56 UTC
I suspect this will work if you update libpsl along with libcurl.

We should probably add a versioned dependency for libpsl like the ones we already have for openssl and libssh.

Comment 2 Paul Howarth 2018-09-21 16:50:19 UTC
You might also want to try a distro sync since you seem to have a mix of fc28 and Rawhide packages on your system.

Comment 3 Kamil Dudka 2018-10-05 11:43:35 UTC
(In reply to Paul Howarth from comment #1)
> We should probably add a versioned dependency for libpsl like the ones we
> already have for openssl and libssh.

Sounds like a good idea!

Comment 5 Fedora Update System 2018-10-05 13:38:12 UTC
curl-7.61.1-2.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-c4a6754e29

Comment 6 Fedora Update System 2018-10-05 18:24:13 UTC
curl-7.61.1-2.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-c4a6754e29

Comment 7 Fedora Update System 2018-10-07 21:00:33 UTC
curl-7.61.1-2.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.