Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Status
    colourPurple
    titleTODO
    Most BaseOS EL8 modules have a default stream; use that if it exists

  2. Status
    colourPurple
    titleTODO
    We could also default to the only stream.
    This is hacky, but it will work for EL8.3—Base OS (i.e., AppStream) modules without a default stream are currently very rare, and at the moment all of them have a single stream:

    Code Block
    # dnf module --disablerepo=\* --enablerepo=appstream list | grep -v '\[d\]'
    CentOS Linux 8 - AppStream
    Name                 Stream       Profiles                                 Summary                                                                
    389-ds               1.4                                                   389 Directory Server (base)                                                                                                                                                                                               
    libselinux-python    2.8          common                                   Python 2 bindings for libselinux                                                                                                                                                                                          
    mod_auth_openidc     2.3                                                   Apache module suporting OpenID Connect authentication                                                                                                                                                                     
    parfait              0.5          common                                   Parfait Module                                                                                                                                                                                                            
    pki-core             10.6                                                  PKI Core module for PKI 10.6 or later                                                                                                                                                                                     
    pki-deps             10.6                                                  PKI Dependencies module for PKI 10.6 or later                          
  3. (question)

    Status
    colourBlue
    titleNOT IN 6.6.0
    Status
    colourRed
    titleunsolved
    This leaves open the future a potential edge-case where we include RPMs that will fail when we need : if in the future, we require an RPM from one of the a Base OS modules above that have multiple streams but don’t have without a default stream but ships with multiple streams (again: current population: 0)., it will fail and there is no way to hint

    • Status
      colourBlue
      titleNOT IN 6.6.0
      We should probably have a way of formally declaring N:S for *pkglist.txt Base OS RPMs in the future. Some possibilities:

      • A separate *pkglist.modularity.txt file

      • N:S-declaring directives in the comments of *pkglist.txt

      • Could this be combined with packages.yaml? (not without a major rewrite)

...

What are the “Fetch RPM” flow differences between Base OS (prune_packages) & External (yumdownloader) packages?

(warning)(minus)

...

How can we

...

know the URL/path to an RPM’s source repo’s

...

repomd.xml file?

This is easy simple enough to do by hand for an individual package, but I’m not sure how to automate it yet. Here are some optionsideas:

  1. Option 1: see if yumdownloader can be convinced to display itthe repo root’s URL, like --urls (haven’t found it yet) does with the RPM

    1. (minus) haven’t found an option that does this

  2. Option 2: walk up the dir tree until we find metadata (hacky, expensive)

  3. Option 3: (somehow) find/define the DNF cache that was used to download the RPM and (somehow) fish out the modulemd data that was used for that specific package

...

The strongest impacts I came up with so far rely on the fact that there’s a good chance that, between two stream versions, the combined set of RPMs won’t match either stream exactly. But unless your mirrors were really out of sync, this probably wouldn’t matter much. The stream version is a snapshot in time of all the modulemd metadata for the stream; it doesn’t actually affect the RPM’s resolution.

(I honestly don’t know many details of how/when V: is used other than “highest wins”, but it might lead to weird edge cases. :)

  1. There’s a (staggeringly) remote change that the newer stream version dropped package(s) or one of its packages has a new dependency

  2. The slim repo will use one N:S:V or the other, but neither upstream precisely matches its RPMs. After re-integrating with the full upstream repo or mirror, DNF might miss an update by deciding it already know the stream version resolve using the wrong stream version for some of the packages, to the wrong versions, miss updates

  3. There may be other reasons to do with inter-modular dependencies.

  4. TL;DR: Not sure if failing is the best way forward—input welcome.

...