Description of problem: Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: The installation software will install packages that state they conflict with each other. This results in a system in an undefined configuration/state. This will be extremely hard to detect. The installer needs to try to resolve package dependencies such that conflicting packages are not installed together. If the dependencies cannot be resolved in an automated manner, then the install should be aborted.
Created attachment 342392 [details] foo-1
Can you provide an example of this as well? At least in the case where two packages provide the same files (a file conflict, as it is called) then we definitely display an error message and ask the user to change their selections. Explicit conflicts also should raise the same error. Definitely need an example here Per request. Can someone take a look at this and see if this makes sense? Please find attached RPMs and these directions: To reproduce this problem: Build foo2 using the provided srpm. Put the resulting package in a repo that kickstart can use. Generate a kickstart file for a test system that includes the following: ---- start of quote ---- text cmdline %packages --nobase @core foo2 ---- end of quote ---- The resulting system will incorrectly have both foo2 and sed installed regardless that foo2 states that it conflicts with sed. Again, an abort/continue question should be posed.
Created attachment 342393 [details] foo-2
Created attachment 342394 [details] bar-1
In general, anaconda ignores Conflicts: operating on the assumption that a system with most things installed is better than a system with nothing installed, since you can at least repair the former by hand after installation. In this case, what you've got is a package that conflicts with the base system component sed. The sed package is going to be required by plenty of other packages and get drawn in regardless. You then also have foo2 specified in your kickstart file, indicating that should be installed as well. Since anaconda throws out the Conflicts, you end up with both. If you really want a package to take the place of sed, you're going to need to Obsolete it. Note that your obsoleting package had better provide something with equivalent functionality or your system is going to be in a real mess.
How about multi-lib packages? They generally conflict with each other and rpm ignores that.
I guess that rpm ignores it upon some reasonable reasons, though I don't a expert of rpm. If rpm ignores it, it's not needed that anaconda cares for it, I think. Masahiro
Development Management has reviewed and declined this request. You may appeal this decision by reopening this request.