FS#8763 - syncing a provide is not intuitive
Attached to Project:
Pacman
Opened by Scott H (stonecrest) - Monday, 26 November 2007, 05:02 GMT
Last edited by Xavier (shining) - Monday, 21 January 2008, 12:18 GMT
Opened by Scott H (stonecrest) - Monday, 26 November 2007, 05:02 GMT
Last edited by Xavier (shining) - Monday, 21 January 2008, 12:18 GMT
|
Details
I did a 'pacman -S scrollkeeper' recently and was
unexpectedly asked about the 'rarian' package. It took me a
bit to figure out that rarian provides scrollkeeper. So here
are two thoughts:
1. Give a warning to the user. Something like "Warning: rarian package provides scrollkeeper" or some such. 2. Don't auto-resolve? This is up for discussion. But it's particularly a question if you were to pacman -S foo and there are multiple packages that provide foo. I think that pacman currently resolves to the first provides package it finds. |
This task depends upon
Closed by Xavier (shining)
Monday, 21 January 2008, 12:18 GMT
Reason for closing: Fixed
Additional comments about closing: fixed in 3.1.1
Monday, 21 January 2008, 12:18 GMT
Reason for closing: Fixed
Additional comments about closing: fixed in 3.1.1
If foo replaces bar, but foo doesn't provide bar (because foo is an other concept), and if you do a "pacman -S bar", you will simply won't be informed about the fact you should change your favourite bar package to foo.
And anyway, I don't think your example makes much sense. When a package replaces another, it usually provides it as well, otherwise it wouldn't really be a replacement, and it could break dependencies. And besides, the deprecated package has no reason to stay and is usually deleted from the repos, so you can't -S it.
Now about the report :
I'm fine with 1, but I'm afraid it's not possible for 3.1, which is in string freeze, right?
I could be fine with 2 too, but in this case, the user needs an easy way to get the list of providers.
Let me go back to stonecrest's example:
He has scrollkeeper installed, which is officially replaced by rarian.
Case 1. He wants to _upgrade_ scrollkeeper, but now that is a provision only. If rarian doesn't conflict with scrollkeeper (can happen), the old scrollkeeper won't be removed so will become a spam.
You said, "not confusing the user by installing a package he didn't request.". I agree here, so I suggest this: "rarian replaces scrollkeeper. Do you want to replace scrollkeeper with rarian? [Y/n]", so do the same as with -Su.
"And anyway, I don't think your example makes much sense."
Imagine the following example: Your distro makes a radical change, for example foo=dpkg and bar=pacman (I know, that this is a very bad example, replace pacman; but I hope, you understand what I want to say); that's why I wrote foo is an other concept, so that is not "compatible" with bar, but an _alternative_.
Case 2. If user wants to _add_ scrollkeeper then I also vote for no-autoresolve, just give a warning, as stonecrest suggested.
I don't know that the two cases necessarily have to be handled differently, I'd personally be okay with the same warning in both cases.