Why did DNF5's "swap" command uninstall, and replace, what appears to be the same package, in one transaction?

With the command undermentioned, I was attempting to resolve a similar problem to what the topic that it is cited within was attempting to:

However, the output was strange:

RokeJulianLockhart@Beedell:~$ sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld
Updating and loading repositories:
Repositories loaded.
Package "mesa-va-drivers-freeworld-25.3.6-1.fc43.x86_64" is already installed.
Package "mesa-va-drivers-freeworld-25.3.6-1.fc43.i686" is already installed.
Problem: cannot install the best candidate for the job
  - conflicting requests

Package                                 Arch    Version        Repository                  Size
Removing:
 mesa-va-drivers-freeworld              i686    25.3.6-1.fc43  rpmfusion-free-updates  52.3 MiB
Reinstalling:
 mesa-va-drivers-freeworld              x86_64  25.3.6-1.fc43  rpmfusion-free-updates  48.7 MiB
   replacing mesa-va-drivers-freeworld  x86_64  25.3.6-1.fc43  rpmfusion-free-updates  48.7 MiB

Transaction Summary:
 Reinstalling:       1 package
 Replacing:          1 package
 Removing:           1 package

Total size of inbound packages is 13 MiB. Need to download 13 MiB.
After this operation, 52 MiB will be freed (install 49 MiB, remove 101 MiB).
Is this ok [y/N]: y
[1/1] mesa-va-drivers-freeworld-0:25.3.6-1.fc43.x86_64               100% |   3.3 MiB/s |  12.8 MiB |  00m04s
-------------------------------------------------------------------------------------------------------------
[1/1] Total                                                          100% |   3.2 MiB/s |  12.8 MiB |  00m04s
Running transaction
[1/5] Verify package files                                           100% |  30.0   B/s |   1.0   B |  00m00s
[2/5] Prepare transaction                                            100% |   6.0   B/s |   3.0   B |  00m00s
[3/5] Reinstalling mesa-va-drivers-freeworld-0:25.3.6-1.fc43.x86_64  100% | 248.3 MiB/s |  48.7 MiB |  00m00s
[4/5] Removing mesa-va-drivers-freeworld-0:25.3.6-1.fc43.i686        100% | 147.0   B/s |  13.0   B |  00m00s
[5/5] Removing mesa-va-drivers-freeworld-0:25.3.6-1.fc43.x86_64      100% |  17.0   B/s |  13.0   B |  00m01s
Complete!

Did I previously have the 32-bit version installed, which it has replaced with the 64-bit version? I hope that the reason that the output confuses me is evident.

Yes, based on the output we can see you already had both i686 and x86_64 versions of the package installed. It didn’t replace it with the x86_64, it removed i686 and reinstalled the x86_64 since it was already installed.

2 Likes

@swiftraccoon, why would swap remove the i686 package?

dnf swap is just remove $1 and install $2 . If you’re on a x86_64 system, then i686 probably gets removed due to dnf’s multilib_policy = best.

2 Likes

Per multilib_policy = best, I’m surprised that the 32-bit version was even installed…

Yes. If you didn’t install it yourself, might could be worth checking to see if you can find out when and why it was installed; maybe there’s a bug somewhere.

1 Like

@swiftraccoon, good idea. I did attempt to do that. [1] However, I fear that I am doing something incorrectly:

RokeJulianLockhart@Beedell:~$ dnf5 history list --contains-pkgs=mesa-va-drivers-freeworld-25.3.6-1.fc43.i686
RokeJulianLockhart@Beedell:~$ echo $?
0
RokeJulianLockhart@Beedell:~$ dnf5 history list --contains-pkgs=mesa-va-drivers-freeworld
 ID Command line                                                 Date and time       Action(s) Altered
500 dnf swap mesa-va-drivers mesa-va-drivers-freeworld           2026-03-15 22:24:10                 3
479 dnf5 upgrade -y --refresh --offline                          2026-03-03 00:37:40                36
449 dnf5 upgrade -y --refresh --offline                          2026-02-18 02:12:03                98
425 dnf5 upgrade -y --refresh --offline                          2026-02-05 22:44:06               123
309 dnf upgrade -y --refresh --offline                           2025-12-09 00:57:06                18
293 dnf upgrade -y --refresh --offline                           2025-11-23 03:06:12               387
280 dnf upgrade -y --refresh --offline                           2025-11-09 11:33:47                76
248 dnf system-upgrade download --releasever=43                  2025-10-30 20:47:34              7890
108 dnf5 upgrade --offline --refresh -y                          2025-04-13 12:27:39               242
 89 dnf5 upgrade --offline --refresh -y                          2025-03-29 00:07:04                69
 48 dnf5 upgrade --offline --refresh -y                          2025-03-14 11:48:41               266
 34 dnf swap mesa-va-drivers.i686 mesa-va-drivers-freeworld.i686 2025-03-09 17:38:36                 1
 32 dnf swap mesa-va-drivers mesa-va-drivers-freeworld           2025-03-09 17:38:26                 3
 30 dnf swap mesa-va-drivers-freeworld mesa-va-drivers           2025-03-09 17:35:16                 2
  8 dnf swap mesa-va-drivers.i686 mesa-va-drivers-freeworld.i686 2025-03-09 16:34:33                24
  6 dnf swap mesa-va-drivers mesa-va-drivers-freeworld           2025-03-09 16:34:07                 2
RokeJulianLockhart@Beedell:~$ dnf5 history list --contains-pkgs=mesa-va-drivers-freeworld.i686
RokeJulianLockhart@Beedell:~$ echo $?
0

Especially, because I don’t observe a history entrant that appears to indicate when it was installed, per se. Apologies; I’m evidently still a novice.


  1. t/169996/2 ↩︎

It would be interesting to see the output of dnf history info 6 and dnf history info 8. (And maybe also 30, 32 and 34.)

1 Like

@pg-tips, gladly:

RokeJulianLockhart@Beedell:~$ dnf5 history info 6
Transaction ID : 6
Begin time     : 2025-03-09 16:34:07
Begin rpmdb    : 9f1cb897d196e83827452650c0573fd2e2184eb8b5712c6b7467ad8085010360
End time       : 2025-03-09 16:34:08
End rpmdb      : 5857fe07ed647796d5388a5aeb96aff8e9c7d67e4eb5ff5ad005b434e5171e45
User           : 1000 Mr. Roke Julian Lockhart Beedell (RJLB) <RokeJulianLockhart>
Status         : Ok
Releasever     : 41
Description    : dnf swap mesa-va-drivers mesa-va-drivers-freeworld
Comment        : 
Packages altered:
  Action  Package                                          Reason Repository
  Install mesa-va-drivers-freeworld-0:25.0.0-4.fc41.x86_64 User   rpmfusion-free-updates
  Remove  mesa-va-drivers-0:25.0.0-2.fc41.x86_64           User   @System

RokeJulianLockhart@Beedell:~$ dnf5 history info 8
Transaction ID : 8
Begin time     : 2025-03-09 16:34:33
Begin rpmdb    : 70901f9662036c190f730e920242d8bebede1940414f14e0b3c6ee7de0fce5aa
End time       : 2025-03-09 16:34:35
End rpmdb      : d1029de4581cb201fc7cfb230cb2c18c9e43d1f222c0add112fe20ef933e5946
User           : 1000 Mr. Roke Julian Lockhart Beedell (RJLB) <RokeJulianLockhart>
Status         : Ok
Releasever     : 41
Description    : dnf swap mesa-va-drivers.i686 mesa-va-drivers-freeworld.i686
Comment        : 
Packages altered:
  Action  Package                                        Reason          Repository
  Install mesa-va-drivers-freeworld-0:25.0.0-4.fc41.i686 User            rpmfusion-free-updates
  Install mesa-filesystem-0:25.0.0-2.fc41.i686           Dependency      updates
  Install libxcb-0:1.17.0-3.fc41.i686                    Dependency      fedora
  Install lm_sensors-libs-0:3.6.0-20.fc41.i686           Dependency      fedora
  Install libXau-0:1.0.11-7.fc41.i686                    Dependency      fedora
  Install glibc-0:2.40-21.fc41.i686                      Dependency      updates
  Install libgcc-0:14.2.1-7.fc41.i686                    Dependency      updates
  Install elfutils-libelf-0:0.192-9.fc41.i686            Dependency      updates
  Install expat-0:2.6.4-1.fc41.i686                      Dependency      updates
  Install libX11-xcb-0:1.8.11-1.fc41.i686                Dependency      updates
  Install libdrm-0:2.4.124-1.fc41.i686                   Dependency      updates
  Install libpciaccess-0:0.16-13.fc41.i686               Dependency      fedora
  Install libstdc++-0:14.2.1-7.fc41.i686                 Dependency      updates
  Install libxshmfence-0:1.3.2-5.fc41.i686               Dependency      updates
  Install libzstd-0:1.5.7-1.fc41.i686                    Dependency      updates
  Install llvm-libs-0:19.1.7-3.fc41.i686                 Dependency      updates
  Install libffi-0:3.4.6-3.fc41.i686                     Dependency      fedora
  Install spirv-tools-libs-0:2024.4-1.fc41.i686          Dependency      updates
  Install zlib-ng-compat-0:2.2.3-2.fc41.i686             Dependency      updates
  Install libedit-0:3.1-54.20250104cvs.fc41.i686         Dependency      updates
  Install ncurses-libs-0:6.5-2.20240629.fc41.i686        Dependency      fedora
  Install libxml2-0:2.12.9-1.fc41.i686                   Dependency      updates
  Install xz-libs-1:5.6.2-2.fc41.i686                    Dependency      fedora
  Install glibc-gconv-extra-0:2.40-21.fc41.i686          Weak Dependency updates

RokeJulianLockhart@Beedell:~$ dnf5 history info 30
Transaction ID : 30
Begin time     : 2025-03-09 17:35:16
Begin rpmdb    : b6bcf3952a77ae782a01969fcc2beb9e6422d58a3b547bd68c7db21424e99e41
End time       : 2025-03-09 17:35:16
End rpmdb      : 38c495b11dce8fda622b01af3d3c0f89544ad970c1233f9fb53684fa834248cf
User           : 1000 Mr. Roke Julian Lockhart Beedell (RJLB) <RokeJulianLockhart>
Status         : Ok
Releasever     : 41
Description    : dnf swap mesa-va-drivers-freeworld mesa-va-drivers
Comment        : 
Packages altered:
  Action Package                                          Reason Repository
  Remove mesa-va-drivers-freeworld-0:25.0.0-4.fc41.x86_64 User   @System
  Remove mesa-va-drivers-freeworld-0:25.0.0-4.fc41.i686   User   @System

RokeJulianLockhart@Beedell:~$ dnf5 history info 32
Transaction ID : 32
Begin time     : 2025-03-09 17:38:26
Begin rpmdb    : 6f5ed0bc638159bf0a85311dc35358865c9f848500558933c4ca7fb2657f8510
End time       : 2025-03-09 17:38:27
End rpmdb      : 63d411193563503e9ecbf66220fe9183aa23787daf1c67796770519d21e0921c
User           : 1000 Mr. Roke Julian Lockhart Beedell (RJLB) <RokeJulianLockhart>
Status         : Ok
Releasever     : 41
Description    : dnf swap mesa-va-drivers mesa-va-drivers-freeworld
Comment        : 
Packages altered:
  Action  Package                                          Reason Repository
  Install mesa-va-drivers-freeworld-0:25.0.0-4.fc41.x86_64 User   rpmfusion-free-updates
  Remove  mesa-va-drivers-0:25.0.0-2.fc41.x86_64           User   @System
  Remove  mesa-va-drivers-0:25.0.0-2.fc41.i686             User   @System

RokeJulianLockhart@Beedell:~$ dnf5 history info 34
Transaction ID : 34
Begin time     : 2025-03-09 17:38:36
Begin rpmdb    : 482845384113c75c964f241d6c0dd14219a68c7842073e0b9fb9252746e932d0
End time       : 2025-03-09 17:38:37
End rpmdb      : cfcf9258beff0ae6764b5dbd86c56ebeeb81d0753f45a17e14cd18fa4df4745b
User           : 1000 Mr. Roke Julian Lockhart Beedell (RJLB) <RokeJulianLockhart>
Status         : Ok
Releasever     : 41
Description    : dnf swap mesa-va-drivers.i686 mesa-va-drivers-freeworld.i686
Comment        : 
Packages altered:
  Action  Package                                        Reason Repository
  Install mesa-va-drivers-freeworld-0:25.0.0-4.fc41.i686 User   rpmfusion-free-updates

Perhaps, it was originally installed by DNF4?

It looks like transaction 8 installed it - I guess explicitly specifying .i686 overrides any multilib preferences.

Nothing was removed in that transaction, so presumably mesa-va-drivers.i686 wasn’t previously installed, and so dnf swap mesa-va-drivers.i686 mesa-va-drivers-freeworld.i686 was equivalent to dnf install mesa-va-drivers-freeworld.i686.

2 Likes