rmarquis / pacaur

[unmaintained] An AUR helper that minimizes user interaction
https://bbs.archlinux.org/viewtopic.php?pid=1755144#p1755144
ISC License
796 stars 113 forks source link

conflict warning where no conflict is #397

Closed 5chdn closed 8 years ago

5chdn commented 8 years ago

i have two packages from aur installed: ethereum-git and mist, they are not in conflict with each other. but somehow i get the following warning:

 ~ $ pacaur -Syua
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
:: Starting AUR upgrade...
:: haskell-deepseq-generics is not present in AUR -- skipping
:: mate-dialogs is not present in AUR -- skipping
:: mate-themes-extras is not present in AUR -- skipping
:: powerdown-git is not present in AUR -- skipping
:: slack-chat is not present in AUR -- skipping
:: uvcvideo-dkms is not present in AUR -- skipping
:: vala-012 is not present in AUR -- skipping
:: resolving dependencies...
:: looking for inter-conflicts...
:: ethereum-git and ethereum-git
mist are in conflict (ethereum). Remove ethereum-git
mist? [y/N] n
:: unresolvable package conflicts detected
:: failed to prepare transaction (conflicting dependencies)
:: ethereum-git and ethereum-git
mist are in conflict

note the linebreak before mist. something strange is going on. i wonder why this happens.

here is some more detailed output: https://gist.github.com/5chdn/6c457f2ef6bf18fe690d

please let me know if you need more details.

5chdn commented 8 years ago

hitting Y allows me to upgrade with the following error tho:

:: resolving dependencies...
:: looking for inter-conflicts...
:: ethereum-git and ethereum-git
mist are in conflict (ethereum). Remove ethereum-git
mist? [y/N] y
grep: mist[\+]*[^a-zA-Z0-9_@\.\+-]+: No such file or directory
rmarquis commented 8 years ago

Indeed weird. Thanks for the report, I'll have a look as soon as possible.

rmarquis commented 8 years ago

Can you post your pacman -Qm output? There is something picky in that list:

 uvcvideo-dkms v8-3.15 vala-012

Not sure where that uvcvideo-dkms comes from, but its version string isn't parsed correctly. Also, this is most likely unrelated, but the package vala-012 doesn't exist in AUR anymore, I think it has been superseded by vala0.12.

5chdn commented 8 years ago
 ~ $ pacman -Qm
android-file-transfer 2.4-1
argtable 2.13-1
caja-dropbox 1.12.0-1
cloog 0.18.4-1
cower 14-2
dropbox 3.12.6-1
ethereum-git 1.0rc2.r106.gb315d82-2
google-chrome 47.0.2526.111-1
gtk-engine-unico 1.0.2-6
haskell-deepseq-generics 0.1.1.2-2
hplip-plugin 3.15.11-1
isl 0.15-1
jdownloader2 latest-7
lib32-libpng12 1.2.56-1
libjson-rpc-cpp-git 20150829-1
libpng12 1.2.56-1
mate-dialogs 1.8.0-2
mate-themes-extras 3.16.3-2
meteor-js 1.2.1-3
mist 0.3.7-2
pacaur 4.4.4-1
pgmodeler 0.8.2_alpha1-1
powerdown-git 149.d834996-1
pybitmessage 0.4.4-2
pydio-sync 1.0.2-1
python2-potr 1.0.1-3
python2-socks 1.5.6-1
qgis 2.12.2-1
qwtpolar 1.1.r182-1
secp256k1-git 20151210-1
slack-chat 1.2.2-2
spatialindex 1.8.5-1
spideroak-one 6.1-1
sublime-text-dev 3.3083-3
teamviewer 11.0.52520-1.5
telegram-desktop-bin 0.9.18-1
tor-browser-en 5.0.7-1
transifex-client 0.10-2
uvcvideo-dkms r104-4
v8-3.15 3.15.11-1
vala-012 0.12.1-3
vidalia 0.2.21-4
rmarquis commented 8 years ago

I was wrong and assumed v8-3.15 was a version string, but it is really a package name. After installing ethereum-git and mist, I am able to reproduce the issue when simulating an ethereum-git update.

rmarquis commented 8 years ago

This issue is due to to the ethereum-git and mist packages both being part of the ethereum group, while the ethereum string is also a conflicting package. As a result, the expac -Qs '%n' ^ethereum$ check not only returns packages and providers of "ethereum", but also all installed packages being part of the "ethereum" group.

Since the group field is rarely provided in PKGBUILDs in the AUR, and the probability of the group field being the very same of the provider checked is quite low, that issue has stayed undetected until now.

As of now, I am not sure how to fix that issue properly. Looking at the behavior of pacman, expac behavior seems to be correct. Also, all expac calls should be carefully checked to ensure this bug doesn't occur in other part of the code.

rmarquis commented 8 years ago

This particular issue has now been fixed in 7e799ad554a37048f65efe94dd7fce12550d6f6e, available through pacaur-git.

The code still needs to be adjusted to ensure the very same issue doesn't happen with version string and maybe when checking for VCS clients too, but for now this should be enough to get you out of that issue. Thanks again for reporting, that one was a surprisingly weird bug!

I'll close this ticket once the above is fully implemented.

5chdn commented 8 years ago

cheer :smile:

rmarquis commented 8 years ago

Fixing this for -Qs '%v' isn't trivial, but on the 3 locations using it, one is entirely safe and the two other are non critical (use for display only). The location using -Qs '%n' to ensure the VCS program is installed is also safe, since this concern only 4 or 5 packages in the whole repositories. No action needed, closing.

rmarquis commented 8 years ago

There is a regression introduced by this change:

With pacaur on the system, installing pacaur-git doesn't trigger the conflict check anymore. Reopening.

rmarquis commented 8 years ago

Fixed in a009b75758fb721636476b36c9e122ba97a2b05f.