Anaconda/Features/YuminstallCleanup
From FedoraProject
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.
- Talk to Jeremy about removing package-level selections. He's been talking about that for a long while now so maybe it's the right time to do it. If this gets done, we can then remove a lot of code from GroupSelector and a bunch of miscellaneous methods from throughout AnacondaYum and YumBackend.
- A patch is supposed to be going into yum soon that will allow setting self.ayum.preconf.releasever = whatever. Once that's in, we can look at removing our own copy of readRepoConfig and related methods. These are really only in there now because (1) we need to create AnacondaYumRepo objects instead of YumRepo objects, and (2) we need to set $releasever ourselves.
clumens: Pushed preconf.releasever chunk. Still need to investigate killing AnacondaYumRepo before we can make any more progress here.
- 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)
- 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)
- 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).
