Bug 2322918 - Installing dnf-automatic: Skipping packages with conflicts (libcurl) and with broken dependencies (dnf5-plugin-automatic)
Summary: Installing dnf-automatic: Skipping packages with conflicts (libcurl) and with...
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf5
Version: 41
Hardware: x86_64
OS: Linux
high
medium
Target Milestone: ---
Assignee: Marek Blaha
QA Contact:
URL: https://discussion.fedoraproject.org/...
Whiteboard:
: 2365231 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-10-31 10:11 UTC by Osama Albahrani
Modified: 2025-05-21 23:33 UTC (History)
15 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Osama Albahrani 2024-10-31 10:11:52 UTC
I just installed Fedora Workstation 41 and having issues understanding the output when trying to install `dnf-automatic`. Is this expected or a bug?

```console
nebula@fedora:~$ sudo dnf install dnf-automatic
[sudo] password for nebula: 
Updating and loading repositories:
 Fedora 41 - x86_64 - Updates           100% |  19.2 KiB/s |  15.3 KiB |  00m01s
 Fedora 41 - x86_64 - Updates           100% | 321.7 KiB/s | 860.3 KiB |  00m03s
Repositories loaded.
Problem: problem with installed package
  - installed package libcurl-minimal-8.9.1-2.fc41.x86_64 conflicts with libcurl(x86-64) provided by libcurl-8.9.1-2.fc41.x86_64 from fedora
  - package libcurl-minimal-8.9.1-2.fc41.x86_64 from fedora conflicts with libcurl(x86-64) provided by libcurl-8.9.1-2.fc41.x86_64 from fedora
  - package dnf5-plugin-automatic-5.2.6.2-1.fc41.x86_64 from fedora requires libcurl-full(x86-64), but none of the providers can be installed
  - cannot install the best candidate for the job

Package                  Arch    Version                  Repository        Size
Downgrading:
 dnf-data                noarch  4.21.1-1.fc41            fedora        38.3 KiB
   replacing dnf-data    noarch  4.21.1-2.fc41            <unknown>     38.3 KiB
 python3-dnf             noarch  4.21.1-1.fc41            fedora         2.6 MiB
   replacing python3-dnf noarch  4.21.1-2.fc41            <unknown>      2.6 MiB
Installing:
 dnf-automatic           noarch  4.21.1-1.fc41            fedora        76.6 KiB
Skipping packages with conflicts:
 libcurl                 x86_64  8.9.1-2.fc41             fedora       818.1 KiB
Skipping packages with broken dependencies:
 dnf5-plugin-automatic   x86_64  5.2.6.2-1.fc41           fedora       178.4 KiB

Transaction Summary:
 Installing:         1 package
 Replacing:          2 package
 Downgrading:        2 packages
 Skipping:           2 packages

Total size of inbound packages is 708 KiB. Need to download 708 KiB.
After this operation, 78 KiB extra will be used (install 3 MiB, remove 3 MiB).
Is this ok [y/N]: 


```

Might be relevant:
```console
$ fastfetch 
             .',;::::;,'.                 nebula@fedora
         .';:cccccccccccc:;,.             -------------
      .;cccccccccccccccccccccc;.          OS: Fedora Linux 41 (Workstation Edition) x86_64
    .:cccccccccccccccccccccccccc:.        Host: MacBookPro14,1 (1.0)
  .;ccccccccccccc;.:dddl:.;ccccccc;.      Kernel: Linux 6.11.4-301.fc41.x86_64
 .:ccccccccccccc;OWMKOOXMWd;ccccccc:.     Uptime: 14 mins
.:ccccccccccccc;KMMc;cc;xMMc;ccccccc:.    Packages: 2059 (rpm), 1 (brew)
,cccccccccccccc;MMM.;cc;;WW:;cccccccc,    Shell: bash 5.2.32
:cccccccccccccc;MMM.;cccccccccccccccc:    Display (Color LCD): 2560x1600 @ 60 Hz (as 1464x915) in 13" [Built-in]
:ccccccc;oxOOOo;MMM000k.;cccccccccccc:    DE: GNOME 47.0
cccccc;0MMKxdd:;MMMkddc.;cccccccccccc;    WM: Mutter (Wayland)
ccccc;XMO';cccc;MMM.;cccccccccccccccc'    WM Theme: Adwaita
ccccc;MMo;ccccc;MMW.;ccccccccccccccc;     Theme: Adwaita [GTK2/3/4]
ccccc;0MNc.ccc.xMMd;ccccccccccccccc;      Icons: Adwaita [GTK2/3/4]
cccccc;dNMWXXXWM0:;cccccccccccccc:,       Font: Cantarell (11pt) [GTK2/3/4]
cccccccc;.:odl:.;cccccccccccccc:,.        Cursor: Adwaita (24px)
ccccccccccccccccccccccccccccc:'.          Terminal: Ptyxis 47.2
:ccccccccccccccccccccccc:;,..             Terminal Font: Source Code Pro (10pt)
 ':cccccccccccccccc::;,.                  CPU: Intel(R) Core(TM) i5-7360U (4) @ 3.60 GHz
                                          GPU: Intel Iris Plus Graphics 640 @ 1.00 GHz [Integrated]
                                          Memory: 3.73 GiB / 7.62 GiB (49%)
                                          Swap: 0 B / 7.62 GiB (0%)
                                          Disk (/): 5.22 GiB / 55.35 GiB (9%) - btrfs
                                          Local IP (wlp2s0): 192.168.100.249/24
                                          Battery (bq20z451): 92% (4 hours, 11 mins remaining) [Discharging]
                                          Locale: en_US.UTF-8

                                                                  
                                                                  
```

Reproducible: Always

Steps to Reproduce:
1. Install Fedora 41 (Workstation)
2. sudo dnf install dnf-automatic
Actual Results:  
Problem: problem with installed package
  - installed package libcurl-minimal-8.9.1-2.fc41.x86_64 conflicts with libcurl(x86-64) provided by libcurl-8.9.1-2.fc41.x86_64 from fedora
  - package libcurl-minimal-8.9.1-2.fc41.x86_64 from fedora conflicts with libcurl(x86-64) provided by libcurl-8.9.1-2.fc41.x86_64 from fedora
  - package dnf5-plugin-automatic-5.2.6.2-1.fc41.x86_64 from fedora requires libcurl-full(x86-64), but none of the providers can be installed
  - cannot install the best candidate for the job

Package                  Arch    Version                  Repository        Size
Downgrading:
 dnf-data                noarch  4.21.1-1.fc41            fedora        38.3 KiB
   replacing dnf-data    noarch  4.21.1-2.fc41            <unknown>     38.3 KiB
 python3-dnf             noarch  4.21.1-1.fc41            fedora         2.6 MiB
   replacing python3-dnf noarch  4.21.1-2.fc41            <unknown>      2.6 MiB
Installing:
 dnf-automatic           noarch  4.21.1-1.fc41            fedora        76.6 KiB
Skipping packages with conflicts:
 libcurl                 x86_64  8.9.1-2.fc41             fedora       818.1 KiB
Skipping packages with broken dependencies:
 dnf5-plugin-automatic   x86_64  5.2.6.2-1.fc41           fedora       178.4 KiB

Transaction Summary:
 Installing:         1 package
 Replacing:          2 package
 Downgrading:        2 packages
 Skipping:           2 packages


Expected Results:  
No problem installing

Related Discourse posts:

- https://discussion.fedoraproject.org/t/installing-dnf-automatic-skipping-packages-with-conflicts-libcurl-and-with-broken-dependencies-dnf5-plugin-automatic/134931
- https://discussion.fedoraproject.org/t/critical-dnf-conflicts-after-upgrading-to-fedora-41/134930

Comment 1 Marek Blaha 2024-10-31 11:08:09 UTC
One of dnf-automatic features is ability to inform the user on the upgrade results using an email. This is implemented using libcurl. Unfortunately libcurl-minimal does not support SMTP protocol, so libcurl-full (provided by libcurl package) is required.

To resolve your issue you need to swap installed libcurl-minimal with libcurl:

# dnf5 swap libcurl-minimal libcurl

We should mention it in documentation.

Comment 2 Marek Blaha 2024-10-31 11:49:28 UTC
So libcurl-minimal is installed in Fedora Workstation by default. We need to find a way how to user-friendly handle this situation.

Comment 3 Osama Albahrani 2024-10-31 14:16:46 UTC
(In reply to Marek Blaha from comment #1)
> One of dnf-automatic features is ability to inform the user on the upgrade
> results using an email. This is implemented using libcurl. Unfortunately
> libcurl-minimal does not support SMTP protocol, so libcurl-full (provided by
> libcurl package) is required.
> 
> To resolve your issue you need to swap installed libcurl-minimal with
> libcurl:
> 
> # dnf5 swap libcurl-minimal libcurl
> 
> We should mention it in documentation.

Thx! That fixed it.

```console
$ sudo dnf install dnf-automatic
Updating and loading repositories:
Repositories loaded.
Package                  Arch    Version                  Repository        Size
Installing:
 dnf5-plugin-automatic   x86_64  5.2.6.2-1.fc41           fedora       178.4 KiB

Transaction Summary:
 Installing:         1 package

Total size of inbound packages is 130 KiB. Need to download 130 KiB.
After this operation, 178 KiB extra will be used (install 178 KiB, remove 0 B).
Is this ok [y/N]: 
```

Comment 4 Osama Albahrani 2024-10-31 14:46:11 UTC
It is possible to replicate the error in a container:

1. podman run --rm -it fedora
2. dnf swap libcurl libcurl-minimal
3. dnf install dnf-automatic

Output:

```console
[root@7162ea0436c4 /]# dnf install dnf-automatic
Updating and loading repositories:
Repositories loaded.
Problem: problem with installed package
  - installed package libcurl-minimal-8.9.1-2.fc41.x86_64 conflicts with libcurl(x86-64) provided by libcurl-8.9.1-2.fc41.x86_64 from fedora
  - package libcurl-minimal-8.9.1-2.fc41.x86_64 from fedora conflicts with libcurl(x86-64) provided by libcurl-8.9.1-2.fc41.x86_64 from fedora
  - package dnf5-plugin-automatic-5.2.6.2-1.fc41.x86_64 from fedora requires libcurl-full(x86-64), but none of the providers can be installed
  - cannot install the best candidate for the job

Package                     Arch   Version                 Repository       Size
Installing:
 dnf-automatic              noarch 4.21.1-1.fc41           fedora       76.6 KiB
Installing dependencies:
 dbus                       x86_64 1:1.14.10-4.fc41        fedora        0.0   B
 dbus-broker                x86_64 36-4.fc41               fedora      382.8 KiB
 dbus-common                noarch 1:1.14.10-4.fc41        fedora       11.2 KiB
 dbus-libs                  x86_64 1:1.14.10-4.fc41        fedora      368.9 KiB
 device-mapper              x86_64 1.02.199-4.fc41         fedora      348.2 KiB
 device-mapper-libs         x86_64 1.02.199-4.fc41         fedora      414.7 KiB
 dnf-data                   noarch 4.21.1-1.fc41           fedora       38.3 KiB
 duktape                    x86_64 2.7.0-8.fc41            fedora      616.2 KiB
 expat                      x86_64 2.6.3-1.fc41            fedora      291.5 KiB
 gnupg2                     x86_64 2.4.5-3.fc41            fedora        9.5 MiB
 ima-evm-utils-libs         x86_64 1.6.2-2.fc41            fedora       60.8 KiB
 kbd                        x86_64 2.6.4-4.fc41            fedora        1.5 MiB
 kbd-legacy                 noarch 2.6.4-4.fc41            fedora      567.1 KiB
 kbd-misc                   noarch 2.6.4-4.fc41            fedora        2.5 MiB
 kmod                       x86_64 33-1.fc41               fedora      235.5 KiB
 libassuan                  x86_64 2.5.7-2.fc41            fedora      163.8 KiB
 libb2                      x86_64 0.98.1-12.fc41          fedora       42.2 KiB
 libcbor                    x86_64 0.11.0-2.fc41           fedora       73.9 KiB
 libcomps                   x86_64 0.1.21-3.fc41           fedora      205.4 KiB
 libdnf                     x86_64 0.73.3-1.fc41           fedora        2.1 MiB
 libfdisk                   x86_64 2.40.2-4.fc41           fedora      362.9 KiB
 libfsverity                x86_64 1.6-1.fc41              fedora       32.6 KiB
 libgcrypt                  x86_64 1.11.0-3.fc41           fedora        1.5 MiB
 libgpg-error               x86_64 1.50-2.fc41             fedora      889.5 KiB
 libksba                    x86_64 1.6.7-2.fc41            fedora      398.4 KiB
 libpkgconf                 x86_64 2.3.0-1.fc41            fedora       78.2 KiB
 libseccomp                 x86_64 2.5.5-2.fc41            fedora      173.3 KiB
 libsecret                  x86_64 0.21.4-3.fc41           fedora      563.4 KiB
 libusb1                    x86_64 1.0.27-3.fc41           fedora      166.3 KiB
 mpdecimal                  x86_64 2.5.1-16.fc41           fedora      204.9 KiB
 npth                       x86_64 1.7-2.fc41              fedora       49.6 KiB
 pcsc-lite                  x86_64 2.3.0-1.fc41            fedora      220.1 KiB
 pcsc-lite-libs             x86_64 2.3.0-1.fc41            fedora       68.0 KiB
 pkgconf                    x86_64 2.3.0-1.fc41            fedora       88.6 KiB
 pkgconf-m4                 noarch 2.3.0-1.fc41            fedora       14.4 KiB
 pkgconf-pkg-config         x86_64 2.3.0-1.fc41            fedora      989.0   B
 polkit                     x86_64 125-1.fc41              fedora      479.5 KiB
 polkit-libs                x86_64 125-1.fc41              fedora      208.0 KiB
 protobuf-c                 x86_64 1.5.0-4.fc41            fedora       54.0 KiB
 python-pip-wheel           noarch 24.2-1.fc41             fedora        1.2 MiB
 python3                    x86_64 3.13.0-1.fc41           fedora       31.8 KiB
 python3-dnf                noarch 4.21.1-1.fc41           fedora        2.6 MiB
 python3-hawkey             x86_64 0.73.3-1.fc41           fedora      306.3 KiB
 python3-libcomps           x86_64 0.1.21-3.fc41           fedora      143.4 KiB
 python3-libdnf             x86_64 0.73.3-1.fc41           fedora        3.8 MiB
 python3-libs               x86_64 3.13.0-1.fc41           fedora       40.3 MiB
 python3-rpm                x86_64 4.20.0-1.fc41           fedora      175.3 KiB
 rpm-sign-libs              x86_64 4.20.0-1.fc41           fedora       39.4 KiB
 systemd                    x86_64 256.7-1.fc41            fedora       17.0 MiB
 systemd-pam                x86_64 256.7-1.fc41            fedora        1.1 MiB
 tpm2-tss                   x86_64 4.1.3-3.fc41            fedora        1.6 MiB
 unbound-libs               x86_64 1.21.1-1.fc41           fedora        1.4 MiB
 xkeyboard-config           noarch 2.42-2.fc41             fedora        6.5 MiB
Installing weak dependencies:
 cryptsetup-libs            x86_64 2.7.5-1.fc41            fedora        2.3 MiB
 diffutils                  x86_64 3.10-8.fc41             fedora        1.6 MiB
 gnupg2-smime               x86_64 2.4.5-3.fc41            fedora      577.9 KiB
 kmod-libs                  x86_64 33-1.fc41               fedora      147.2 KiB
 libbpf                     x86_64 2:1.4.6-1.fc41          fedora      402.6 KiB
 libfido2                   x86_64 1.15.0-2.fc41           fedora      238.2 KiB
 libxkbcommon               x86_64 1.7.0-4.fc41            fedora      336.4 KiB
 pcsc-lite-ccid             x86_64 1.6.1-2.fc41            fedora      404.2 KiB
 pinentry                   x86_64 1.3.1-2.fc41            fedora      258.0 KiB
 polkit-pkla-compat         x86_64 0.1-29.fc41             fedora       93.8 KiB
 python-unversioned-command noarch 3.13.0-1.fc41           fedora       23.0   B
 python3-unbound            x86_64 1.21.1-1.fc41           fedora      521.8 KiB
 qrencode-libs              x86_64 4.1.1-8.fc41            fedora      160.9 KiB
 rpm-plugin-systemd-inhibit x86_64 4.20.0-1.fc41           fedora       16.3 KiB
 systemd-networkd           x86_64 256.7-1.fc41            fedora        2.1 MiB
 systemd-resolved           x86_64 256.7-1.fc41            fedora      671.1 KiB
 systemd-udev               x86_64 256.7-1.fc41            fedora       11.8 MiB
 unbound-anchor             x86_64 1.21.1-1.fc41           fedora       57.3 KiB
Skipping packages with conflicts:
 libcurl                    x86_64 8.9.1-2.fc41            fedora      818.1 KiB
Skipping packages with broken dependencies:
 dnf5-plugin-automatic      x86_64 5.2.6.2-1.fc41          fedora      178.4 KiB

Transaction Summary:
 Installing:        72 packages
 Skipping:           2 packages

Total size of inbound packages is 35 MiB. Need to download 35 MiB.
After this operation, 123 MiB extra will be used (install 123 MiB, remove 0 B).
Is this ok [y/N]: 
```

Comment 5 Goran 2024-11-03 18:26:09 UTC
(In reply to Marek Blaha from comment #1)
> One of dnf-automatic features is ability to inform the user on the upgrade
> results using an email. This is implemented using libcurl. Unfortunately
> libcurl-minimal does not support SMTP protocol, so libcurl-full (provided by
> libcurl package) is required.
> 
> To resolve your issue you need to swap installed libcurl-minimal with
> libcurl:
> 
> # dnf5 swap libcurl-minimal libcurl
> 
> We should mention it in documentation.

This has helped me as well, thank you!!!!

Comment 6 Petr Pisar 2024-11-25 12:14:53 UTC
"dnf install --allowerasing dnf5-plugin-automatic" is intelligent enough for me to swap the packages without uninstalling other packages.

Provided that once installed packages (libcurl-minimal) should not be automatically uninstalled, there cannot be much plain "dnf install" can do.

Comment 7 Michael Vorburger.ch 2025-01-03 17:28:36 UTC
Thank You for documenting "dnf5 swap libcurl-minimal libcurl" - that did the trick for me as well.

Noticing the log below while doing it, I could help but wonder what the point of a separate 647.7 KiB libcurl-minimal VS the 818.1 KiB libcurl was... is the (small) "pain" that this introduces worth the 170 KiB saved? I don't suppose that simply (eventually maybe; I don't know how this work) getting rid of libcurl-minimal entirely, and just always "replacing" ("forwarding", however it works) it entirely with libcurl in future releases is an option here? Just a thought that crossed my mind while figuring this out.


$ sudo dnf5 swap libcurl-minimal libcurl

Updating and loading repositories:
Repositories loaded.
Package                                                       Arch           Version                                                       Repository                             Size
Removing:
 libcurl-minimal                                              x86_64         8.9.1-2.fc41                                                  fedora                            647.7 KiB
Installing:
 libcurl                                                      x86_64         8.9.1-2.fc41                                                  fedora                            818.1 KiB

Transaction Summary:
 Installing:         1 package
 Removing:           1 package

Total size of inbound packages is 362 KiB. Need to download 362 KiB.
After this operation, 170 KiB extra will be used (install 818 KiB, remove 648 KiB).

Comment 8 Petr Pisar 2025-01-06 09:01:00 UTC
libcurl-minimal implements a subset of protocols. It exists to decrease an attack surface. If you want to contemplate its usefulness, I recommend opening a bug against curl component.

Comment 9 Petr Pisar 2025-03-10 16:28:32 UTC
Sending dnf-automatic results defaults to emit_via=stdio. As the default configuration does not require cURL library with SMTP protocol, I'm keen to relax the dependency (e.g. to Recommends level) and make sure that dnf-automatic command properly fails if emit_via is set to "email" and cURL library does not support SMTP.

Comment 10 Petr Pisar 2025-05-09 11:22:05 UTC
*** Bug 2365231 has been marked as a duplicate of this bug. ***

Comment 11 Evan Goode 2025-05-21 23:33:29 UTC
> I'm keen to relax the dependency (e.g. to Recommends level) and make sure that dnf-automatic command properly fails if emit_via is set to "email" and cURL library does not support SMTP.

+1


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