Vague zypper error message

When I update the host with zypper, it persists offering this message:

$ zypper --non-interactive --ignore-unknown --no-cd update --auto-agree-with-licenses --dry-run --download-only

...bunch-o-stuff...]

Checking for file conflicts: ............done]
Warning: 4 packages had to be excluded from file conflicts check because they are not yet downloaded.
Note: Checking for file conflicts requires not installed packages to be downloaded in advance
to access their file lists. See option '--download-in-advance / --dry-run --download-only'
in the zypper manual page for details.

Which packages?
What conflicts?

The message suggests that using the very commands that were provided.

How to diagnose the problem?

I don’t know.

When I have used both “–download-only” and “–dry-run” it has downloaded the packages and checked them for conflicts. Perhaps the “–no-cd” affects this. I usually don’t have any enabled CD or DVD repos. Or maybe there is something in that “…bunch-o-stuff…]” part that is relevant.

Here is bunch-o-stuff:

Ignoring repository 'openSUSE-Leap-15.1-1' because of 'no-cd' option. Loading repository data...
Reading installed packages...

The following 2 package updates will NOT be installed:
  youtube-dl-bash-completion youtube-dl-zsh-completion

The following 4 packages are going to be upgraded:
  libre2-0 MozillaFirefox MozillaFirefox-translations-common MozillaThunderbird

4 packages to upgrade.
Overall download size: 164.4 KiB. Already cached: 105.3 MiB. Download only.
Continue? [y/n/v/...? shows all options] (y): y
In cache MozillaFirefox-68.3.0-lp151.2.21.1.x86_64.rpm (1/4),  46.5 MiB (172.0 MiB unpacked)
In cache MozillaThunderbird-68.3.0-lp151.2.19.1.x86_64.rpm (2/4),  47.8 MiB (174.5 MiB unpacked)
Retrieving package libre2-0-20200101-lp151.10.6.1.x86_64 (3/4), 164.4 KiB (459.8 KiB unpacked)
Retrieving delta: ./x86_64/libre2-0-20190901_20200101-lp151.10.3.1_lp151.10.6.1.x86_64.drpm, 24.3 KiB
Retrieving: libre2-0-20190901_20200101-lp151.10.3.1_lp151.10.6.1.x86_64.drpm .done]
Applying delta: ./libre2-0-20190901_20200101-lp151.10.3.1_lp151.10.6.1.x86_64.drpm ...................done]
In cache MozillaFirefox-translations-common-68.3.0-lp151.2.21.1.x86_64.rpm (4/4),  11.0 MiB ( 63.6 MiB unpacked)

And, indeed, 4 packages were installed.

The math does not compute.

  • 4 packages were to be upgraded.
  • 4 packages had conflicts and were excluded.
  • 4 packages were upgraded.
    So, 4 - 4 = 4?

I’m not seeing that problem.

4 packages were excluded from the file conflict check. They might not have been excluded from the update.

However, I am not seeing why they were excluded from conflict check. But they were, because there does not seem to have been a conflict check.

I guess you could file a bug report, so that the zypper maintainers look at it.

Maybe more verbose for zypper:

zypper -vv .......

From the zypper manual…

   Package File Conflicts
       File conflicts happen when two packages attempt to install files with the same name but different contents.
       This may happen if you are installing a newer version of a package without erasing the older version, of if
       two unrelated packages each install a file with the same name.

       As checking for file conflicts requires access to the full filelist of each package being installed, zypper
       will be able to check for file conflicts only if all packages are downloaded in advance (**see
       --download-in-advance**). If you are doing a --dry-run no packages are downloaded, so the file conflict check
       will skip packages not available in the packages cache. To get a meaningful file conflict check use --dry-run
       together with --download-only.

       As the reason for file conflicts usually is a poor package design or lack of coordination between the people
       building the packages, they are not easy to resolve. By using the --replacefiles option you can force zypper        to replace the conflicting files. Nevertheless this may damage the package whose file gets replaced.

As you can see,
The conflict check can’t be done unless the packages are downloaded** in advance** which your command doesn’t do.

Maybe this is still worth submitting a bug report, IMO the instructions that say that “–download-only” is sufficient are likely misleading.

TSU