Anaconda/Features/YuminstallCleanup

'''This is not a feature request page. It outlines tasks to be done in yuminstall.py'''


 * Work with rel-eng to get repos providing an installable system tagged somehow. According to jantill yum supports arbitrary tags on repo metadata and it'd help anaconda out a lot if we knew a repo provided a full system instead of just some packages.  With this information, we can probably get rid of a lot of the base repo URL configuration.


 * Make sure yum/rpm provide us with enough information during upgrades so we can tell what package is being cleaned up, how many need to be cleaned up, which number we're working on, etc.


 * Convert to using the yum-provided callback instead of AnacondaYumCallback. As part of this, make sure there's a useful progress indicator on upgrades too.  Ideally, it should look the same on installs and upgrades.


 * Work on getting a method into yum that does the equivalent of "yum clean all" then convert anaconda to using that.


 * Work on getting a method added to YumRepo that tells us whether or not a repo needs the network up in order to fetch its metadata. Then remove AnacondaYumRepo.


 * Remove package-level selections. We can then remove a lot of code from GroupSelector and a bunch of miscellaneous methods from throughout AnacondaYum and YumBackend.


 * Fix it so a DVD plus the updates repo works properly. Right now, you can end up in a situation where the updates repo pulls in a package that's in the Everything spin but not the spin on the DVD.  A possible generic fix here is to enable extra repos on the fly if they are needed.  We would likely need a way to know what repo provided a specific package before we could implement this.  (#490758)


 * Codify and document all the packaging error cases that can happen and how we deal with them. This involves file space errors, package conflicts, file conflicts, and the like.


 * Check if DownloadHeaderProgress and YumDepSolveProgress need to be reworked.


 * Audit anaconda to see where we're breaking the backend API and fix it. Also perhaps the backend API needs to be overhauled entirely.  How useful is it really right now?


 * Poke other distributions for backend patches.


 * Fix repo editing UI for CD/DVD and HDISO installs. (#501372, #502208)

Done:
 * We don't log anything from yum at all. This makes it very hard to debug problems with dependencies and package installation in general.  The reason we don't log anything from yum is that having two python loggers going at once is very complicated.  However, we really need to find a way to do this.  It could involve reworking anaconda_log.py.

rvykydal: I pushed yuminstall.py patch that should fix it


 * Detect errors when running package scriptlets and inform the user (#452724).


 * Fix it so errors can be detected on split media installs. If a package on disc one has a file conflict or regular conflict with a package on disc two, we cannot detect this problem.  This is because those errors are currently handled by the transaction check, and each disc is its own separate transaction.  Errors cannot be detected between two transactions.  We may have enough information in the metadata on the first disc to check for all errors right at the beginning.  This is a serious problem that can result in broken systems on upgrade or install.  (#472958)