Adds (mostly) complete -Sl support. While pacman will also print the
version number for the package, packages.gz does not give version
numbers. Using -Si to fetch all that data would also be unthinkable.
Instead of just missing out the version number yay will print
"unknown-version". This is so that tools that expect a version number do
not break.
This ensures AUR packages are always installed in the order specified by
the user. In the case there are any inner conflicts packages will be
removed in a predictable way.
Inner conflicts now check against the previously installed aur packages
For example when installing yay, yay-bin and yay-git
yay will be checked the previously insalled packages (nothing)
yay-bin will be checked the previously insalled packages and see that it
conflicts with yay and warn you that yay will be removed
yay-git will be checked the previously insalled packages and see that it
conflicts with yay but see that it has already been removed by yay-bin
so does nothing. Then it will see that it conflicts with yay-bin and
warn you that yay-bin will be removed
This example is unlikley to happen unless the user enters
`yay -S yay yay-bin yay-git`. But where this does happen is packages
which have some sort of bootsrapping process such as ffmpeg-libfdk_aac.
If two repo packages conflict then we abort. This is because they will
be installed at the same time and we never swap repo packages mid AUR
install.
Currently when printing conflicts the package name is printed and then
name of the conflict if it differs from the package name.
For example if yay-git is installed and you are installing yay-bin:
yay-bin conflicts with yay
yay-git provides yay
so the conflict is printed as "yay-bin (yay)"
This is not too bad but some packages have many provides and conflicts
that ends up cluttering the output.
For example if gvim is installed and you are installing vim:
"gvim, gvim (vim-minimal), gvim (vim)" is printed
Just printing the package name should be enough information. If not the
user can always -Si either package.