8.4.2. Select Matching Packages
This is the logic Revisor applies when running in Re-Spin mode (on the CLI, specify --respin
). It imitates the behavior pungi has, and thus enables you to copy that behavior. Note that --respin
has other implications as well.
First of all, it iterates the groups in the kickstart package manifest. For each group, it appends the names of the mandatory packages to a list, and depending on the additional parameters specified with that group (--nodefaults
or --optional
), appends the names of the other packages in that group as well.
Then it iterates over the package names in the package manifest. These package names are appended to the same list of package names too. This includes package 'names' with some sort of wildcard (?, or *).
Then it iterates over all the excluded packages, appending each of those to the YUM configuration exclude list.
Now that Revisor has a very simple, flat list of package names, it uses YUM's internal matching logic 5 to get what packages in the repositories matched exactly (by name), matched (by wildcard) and did not match at all. Revisor then selects the exact matches and matches, adding them to the transaction.