On Mon, May 11, 2020 at 7:23 PM Miro Hrončok <mhroncok(a)redhat.com> wrote:
On 12. 05. 20 0:32, Adam Williamson wrote:
> On Mon, 2020-05-11 at 01:47 +0200, Miro Hrončok wrote:
>> On 10. 05. 20 20:48, Kevin Fenzi wrote:
>>> Basically we are switching from 'I go and install
>>> fedora-obsolete-packages and have opted in to it' to 'I have to go
>>> explictly exclude it to keep my obsolete packges'.
>> As others have pointed out, this was never the case of 'I go and install
>> fedora-obsolete-packages and have opted in to it' -- this was always the
>> 'fedora-obsolete-packages obsoletes something I had installed, so it is
>> in by dep resolver'.
> Uh. Are we *sure* about that? Same as Kevin, that is not how I recall
> this working.
Yes, I am *sure*.
> I've long worked under the belief that this if Y Obsoletes: X, but you
> don't have Y installed (and nothing else in the update would cause it
> to be pulled in), running 'dnf update' with a repo that contains Y
> enabled is not going to install Y and remove X. X will stay there.
> Obsoletes: only kick in if the package that does the obsoleting is
> installed, or is included in the transaction.
Package Y that obsoletes X kicks in when you have X installed and Y available.
(Assuming both are non-modular. With modules, this concept is broken.)
> This is - AIUI - why the packaging guidelines say, when you rename a
> package, that the new package should Obsoletes: *and Provides:* the old
> package: without the Provides:, you cannot expect the new package to
> reliably replace the old one.
The provides is there only to not break existing packages and users who depend
on and/or install the old name.
> Are you *sure* that DNF doesn't behave this way? The idea surprises me.
Yes, I am *sure*. I guess it's not dnf, but libsolv, hence GNOME Software should
behave the same.
To be clear: Obsoletes affects _only_ upgrades. Our policy says to do
Obsoletes+Provides so that when people do *installs*, they get the new
package too. fedora-obsolete-packages *explicitly* does not do
Provides for this reason.
There were a few YUM hacks where it processed Obsoletes on installs in
specific circumstances as well, but that behavior has been gone from
Fedora since we switched to DNF in Fedora 22. And good riddance.
真実はいつも一つ！/ Always, there's only one truth!