paru icon indicating copy to clipboard operation
paru copied to clipboard

Allow choosing providers of dependencies

Open lionslancer opened this issue 2 years ago • 3 comments

Have you checked the readme and man page for this feature? Yes Have you checked previous issues for this feature? Yes

Currently paru does not appear to allow choosing a provider for packages installed as dependencies. Compare the outputs of yay and paru when installing fcitx5-mozc-ut, which depends on mozc:

$ paru -S fcitx5-mozc-ut         
:: Resolving dependencies...
:: Calculating conflicts...
:: Calculating inner conflicts...

Aur (2) mozc-2.28.4715.102-1  fcitx5-mozc-ut-2.28.4715.102-1

:: Proceed to review? [Y/n]: 
$ yay -S fcitx5-mozc-ut
:: There are 3 providers available for mozc>=2.28.4715.102:
:: Repository AUR
    1) mozc 2) mozc-ut 3) mozc-ut-united 

Enter a number (default=1): 

In this case, I would prefer to use mozc-ut as the provider for mozc. This can be worked around by simply installing mozc-ut first. However, that requires the user to already be aware of which provider they want to use, and has the side effect of marking the dependency as explicitly installed.

lionslancer avatar May 10 '22 21:05 lionslancer

Paru purposely does not do this as the provider search is a bit of a hack and causes a lot more aur traffic. So the provider search is only ran on targets or missing packages,

Morganamilo avatar May 12 '22 09:05 Morganamilo

I see, that is understandable. Would you be opposed to implementing an option for it that is off by default? While not ideal, it seems like a temporary way to avoid messing up the dependency tree (other than installing the dependency as a target, and marking it as a dependency afterwards).

Have I understood correctly that the AUR doesn't allow searching the provides field directly?

lionslancer avatar May 12 '22 11:05 lionslancer

--provides=all is fine. Though I don't have any plans to actually implement it myself.

Have I understood correctly that the AUR doesn't allow searching the provides field directly?

Yes, provides is basically done by searching the first part of the package then requesting info on the results:

provides for foo-bar = paru -Ss foo | paru -Si -

Morganamilo avatar May 16 '22 08:05 Morganamilo

Fixed in f0bacd8

Morganamilo avatar Nov 27 '22 19:11 Morganamilo

I know this issue is closed but I think this still does not work :(

I still get this:

$ paru -S fcitx5-mozc-ut         
:: Resolving dependencies...
:: Calculating conflicts...
:: Calculating inner conflicts...

Repo (2) xcb-imdkit-1.0.5-1.1  fcitx5-5.0.23-1.1
Repo Make (1) bazel-6.1.2-1.1
Aur (2) mozc-2.28.5080.102-1  fcitx5-mozc-ut-2.28.5080.102-1

:: Proceed to review? [Y/n]: 

But when I try to install the dependency manually then I get the prompt to choose:

$ paru -S mozc
:: Resolving dependencies...
:: There are 3 providers available for mozc:
:: Repository AUR:
    1) mozc  2) mozc-ut  3) mozc-ut-united  
Enter a number (default=1): 

sant0s12 avatar Apr 28 '23 05:04 sant0s12

Are you using paru-git?

Morganamilo avatar Apr 29 '23 20:04 Morganamilo

@Morganamilo Yes, paru v1.11.2.r167.g257e011 - libalpm v13.0.2

sant0s12 avatar Apr 30 '23 05:04 sant0s12