https://bugzilla.redhat.com/show_bug.cgi?id=1111691
--- Comment #17 from Michael Schwendt bugs.michael@gmx.net ---
This did not work [...]
So-called "self-Obsoletes" do work, because the same package still Provides what it Obsoletes.
Self-Obsoletes sometimes are used to replace multiple packages (of no specific arch) with a single new package.
Provides: libqore5 = 0.8.11 Obsoletes: libqore5 < 0.8.12
Anything that "Requires: libqore5 <= 0.8.11" would still have worked, because it is still provided.
Provides: libqore5 = %{version} Obsoletes: libqore5 < %{version}
This is cleaner, of course. Though, typically one hardcodes a specific maximum version-release in the Obsoletes tag to be really accurate and not obsolete more than necessary (e.g. if %version increments, the Obsoletes tag would adjust and also obsolete newer versions than what had been specified originally).