Bug 2057096 - dnf updateinfo does not show non Fedora updates
Summary: dnf updateinfo does not show non Fedora updates
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf
Version: 35
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Marek Blaha
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-02-22 17:57 UTC by Ankur Sinha (FranciscoD)
Modified: 2022-03-02 20:48 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-03-01 12:39:11 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
dnf list output (2.11 KB, text/plain)
2022-02-22 17:57 UTC, Ankur Sinha (FranciscoD)
no flags Details
dnf updateinfo output (3.18 KB, text/plain)
2022-02-22 17:58 UTC, Ankur Sinha (FranciscoD)
no flags Details

Description Ankur Sinha (FranciscoD) 2022-02-22 17:57:38 UTC
Created attachment 1862695 [details]
dnf list output

Description of problem:
I was looking at both `dnf list --updates`, and `dnf updateinfo --list`, and I realised that the number of updates in the two differ.

For example:

sudo dnf list --updates -q | grep -vc "Available Upgrades"
95

sudo dnf updateinfo --list -q | wc -l
86

On further inspection, it looks like updates from non-Fedora repositories, like RPM Fusion are not listed in `dnf updateinfo`. Please see the attached files. In the `dnf updateinfo` output, packages such as `mock-rpmfusion-free` and `mock-rpmfusion-nonfree` are not included.



Version-Release number of selected component (if applicable):
$ dnf --version
4.9.0
  Installed: dnf-0:4.9.0-1.fc35.noarch at Sat 25 Sep 2021 15:48:55 GMT
  Built    : Fedora Project at Thu 23 Sep 2021 12:18:24 GMT

  Installed: rpm-0:4.17.0-4.fc35.x86_64 at Sat 05 Feb 2022 11:20:56 GMT
  Built    : Fedora Project at Wed 02 Feb 2022 12:39:01 GMT


How reproducible:
Always

Steps to Reproduce:
1. run listed commands, and compare output
2.
3.

Actual results:
Updates from non-Fedora repositories seem to be omitted from `dnf updateinfo` output

Expected results:
Updates from all repositories should be listed.

Additional info:
I did check the man page, and saw no mention of non-Fedora repository updates being skipped. I think if they can be included, even as "Other" because no information on the type of update is available, that will be good. Users expect to see identical outputs between something like `dnf list --updates` and `dnf updateinfo --list`.

Comment 1 Ankur Sinha (FranciscoD) 2022-02-22 17:58:01 UTC
Created attachment 1862696 [details]
dnf updateinfo output

Comment 2 Marek Blaha 2022-03-01 12:39:11 UTC
DNF makes no distinction between Fedora and other repositories.

The problem with some repositories is, that they do not contain updateinfo.xml metadata. These metadata are generated by bodhi when the updated package is pushed into repository. These metadata are then read, processed and displayed by the `dnf updateinfo` command.

Check whether repositories in question contain metadata of 'updateinfo' type - look into its repomd.xml file. For example for fedora 35 updates repository it is here: https://mirror.karneval.cz/pub/linux/fedora/linux/updates/35/Everything/x86_64/repodata/repomd.xml
If you open this file, you can find a record for updateinfo there:

<data type="updateinfo">
    <checksum type="sha256">d4f751e52ade335e2dd3211419f43486fa5177f0e80983656f7c36f91fbedb72</checksum>
    <open-checksum type="sha256">3a158833ae4d12eb56ad767d211bf4aa656c05017ed96ca2fb5dc2c784ade407</open-checksum>
    <location href="repodata/d4f751e52ade335e2dd3211419f43486fa5177f0e80983656f7c36f91fbedb72-updateinfo.xml.xz"/>
    <timestamp>1645933206</timestamp>
    <size>1714716</size>
    <open-size>36308317</open-size>
</data>

If you look into rpmfusion update repository (http://download1.rpmfusion.org/free/fedora/updates/35/x86_64/repodata/repomd.xml), there is no such record. Therefore updates for rpm fusion cannot be displayed by the `updateinfo` command.

If you need `updateinfo` do display information for particular repo, you need to persuade it's maintainers to include updateinfo metadata.

Comment 3 Ankur Sinha (FranciscoD) 2022-03-01 16:09:15 UTC
Thanks for that. Would there be some documentation on how the extra updateinfo record is to be generated? (I don't see it mentioned in createrepo, for example).  Most third party repositories do not use an instance of Bodhi (and of course, can't use ours). So they'll need to find another way of adding this information to the repodata.

It'll just be good to go to RPM Fusion with some information on what it is they need to do to add this metadata.

Comment 4 Marek Blaha 2022-03-02 15:06:02 UTC
Unfortunately I do not know much about the process. There are some pieces of information in createrepo_c examples (https://github.com/rpm-software-management/createrepo_c/tree/master/examples/python), and something could be read from bodhi sources (https://github.com/fedora-infra/bodhi/blob/develop/bodhi-server/bodhi/server/metadata.py). But these are only hints how to generate the final updateinfo.xml and inject it into repository metadata. Of course they will need some database of errata with data which updateinfo should contain.

Comment 5 Ankur Sinha (FranciscoD) 2022-03-02 20:48:18 UTC
Thank you. I've let the RPM Fusion admins know, and they'll see what they can do.


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