FS#5775 - pacman does not install all dependencies
Attached to Project:
Pacman
Opened by Roman Kyrylych (Romashka) - Tuesday, 07 November 2006, 11:34 GMT
Last edited by Roman Kyrylych (Romashka) - Tuesday, 06 February 2007, 20:53 GMT
Opened by Roman Kyrylych (Romashka) - Tuesday, 07 November 2006, 11:34 GMT
Last edited by Roman Kyrylych (Romashka) - Tuesday, 06 February 2007, 20:53 GMT
|
Details
Original post is here:
http://bbs.archlinux.org/viewtopic.php?p=206192#206192
1) pacman -S gnome-screensaver Targets: libdrm-2.0.2-1 libgl-dri-6.5.1-1 glproto-1.4.7-1 mesa-6.5.1-1 gnome-screensaver-2.14.3-1 2) pacman -S gnome-screensaver 3) pacman -Rs gnome-screensaver Targets: gnome-screensaver I was shocked 8( 4) pacman -Qi mesa . . . Required By : gnome-screensaver xorg-res-utils . . . 5) pacman -Qi xorg-res-utils . . . Depends On : libdmx libxaw libxft libxi libxinerama libxtst libxv libxxf86dga libxxf86misc mesa Required By : xorg-clients How this could happen??? This is completely fresh installed machine, from tpowa's ISO + updates from full mirror of official repos (mirrored ~1 month ago). I installed Xorg with Code: pacman -S xorg-server xorg-clients xf86-input-mouse xf86-input-keyboard xf86-video-vmware Why pacman haven't installed mesa at that time??? ----- Then I did a clean Arch install on another machine and pacman -S xorg-server xorg-clients xf86-input-mouse xf86-input-keyboard xf86-video-vmware xorg-res-utils were installed as a dependency for xorg-clients, but no dependencies for xorg-res-utils were installed at all! Then I did pacman -Rcs xorg-server xorg-clients xf86-input-mouse xf86-input-keyboard xf86-video-vmware and total size of packages pacman wanted to remove was smaller than size of all xorg packages with deps which was shown during pacman -S. I don't have logs for pacman -S / pacman -Rcs now, but I can repeat procedure and post them. It's easy to reproduce. I don't checked this with pacman3 yet, so I don't know if this bug is fixed in it. |
This task depends upon
Closed by Roman Kyrylych (Romashka)
Friday, 09 February 2007, 10:24 GMT
Reason for closing: Not a bug
Additional comments about closing: See last comments.
Friday, 09 February 2007, 10:24 GMT
Reason for closing: Not a bug
Additional comments about closing: See last comments.
IMHO the bug here is that pacman does not install mesa as a dependency for xorg-res-utils when installing xorg-clients.
1) installed Arch Linux from one of the latest tpowa's ISOs
2) pacman -Syu
3) pacman -S xorg-server xorg-clients xf86-input-keyboard xf86-input-mouse xf86-video-vmware
Targets: xproto-7.0.9-1 libice-1.0.1-1 libsm-1.0.1-1 libxau-1.0.1-1
libxdmcp-1.0.1-1 kbproto-1.0.2-1 inputproto-1.3.2-1
bigreqsproto-1.0.2-1 libx11-1.0.3-1 libxt-1.0.2-1 libxkbfile-1.0.3-1
libxkbui-1.0.2-1 xextproto-7.0.2-1 libxext-1.0.1-1 libxi-1.0.1-1
xf86miscproto-0.9.2-1 libxxf86misc-1.0.1-1 libfontenc-1.0.2-1
freetype2-2.2.1-3 fontsproto-2.0.2-1 libxfont-1.2.2-1
renderproto-0.9.1-1 libxrender-0.9.1-1 dmxproto-2.2.2-1 libdmx-1.0.2-1
libxmu-1.0.2-1 libxpm-3.5.5-1 printproto-1.0.3-1 libxp-1.0.0-1
libxaw-1.0.2-1 xf86vidmodeproto-2.2.2-1 libxxf86vm-1.0.1-1
xorg-fonts-encodings-1.0.1-1 xorg-fonts-alias-1.0.1-1
xorg-font-utils-1.0.1-1 expat-2.0.0-1 fontconfig-2.4.1-4
xorg-fonts-misc-1.0.0-3 xcursor-themes-1.0.1-1 xorg-xkb-utils-1.0.2-1
xkeyboard-config-0.6-1 fontcacheproto-0.1.2-1 libxfontcache-1.0.2-1
liblbxutil-1.0.1-1 randrproto-1.1.2-1 libxrandr-1.1.1-1
trapproto-3.4.3-1 libxtrap-1.0.0-1 mcpp-2.6-1 xorg-server-utils-1.0.2-2
xf86dgaproto-2.0.2-1 libxxf86dga-1.0.1-1 recordproto-1.13.2-1
libxtst-1.0.1-1 xineramaproto-1.1.2-1 libxinerama-1.0.0-1
videoproto-2.2.2-1 libxv-1.0.2-1 libxft-2.1.10-1 xorg-utils-1.0.1-1
xorg-server-1.1.1-3 fixesproto-4.0-2 libxfixes-4.0.1-1
libxcursor-1.1.7-1 libpng-1.2.12-1 xorg-apps-1.0.2-2 xorg-xauth-1.0.1-1
xorg-xsm-1.0.1-2 xorg-xinit-1.0.2-2 xorg-xfwp-1.0.1-2 libfs-1.0.0-1
xorg-xfs-1.0.2-1 xorg-xdm-1.1.0-1 xorg-twm-1.0.1-1
xorg-res-utils-1.0.0-1 xorg-clients-7.0-1 xf86-input-mouse-1.1.1-1
xf86-input-keyboard-1.1.0-1 xf86-video-vmware-10.13.0-1
Total Package Size: 23.1 MB
Proceed with upgrade? [Y/n] Y
!!! Note that there's no mesa listed here
4) pacman -Rs xorg-server xorg-clients xf86-input-keyboard xf86-input-mouse xf86-video-vmware
warning: cannot find package "mesa" or anything that provides it!
. . . (75 same lines in total!!!)
Targets: xf86-video-vmware xf86-input-keyboard xf86-input-mouse xorg-clients
xorg-res-utils xorg-twm xorg-xdm xorg-xfs libfs xorg-xfwp xorg-xinit
xorg-xsm xorg-xauth xorg-apps libpng libxcursor libxfixes fixesproto
xorg-server xorg-utils libxft libxv videoproto libxinerama
xineramaproto libxtst recordproto libxxf86dga xf86dgaproto
xorg-server-utils mcpp libxtrap trapproto libxrandr randrproto
liblbxutil libxfontcache fontcacheproto xkeyboard-config
xorg-xkb-utils xcursor-themes xorg-fonts-misc fontconfig expat
xorg-font-utils xorg-fonts-alias xorg-fonts-encodings libxxf86vm
xf86vidmodeproto libxaw libxp printproto libxpm libxmu libdmx
dmxproto libxrender renderproto libxfont fontsproto freetype2
libfontenc libxxf86misc xf86miscproto libxi libxext xextproto
libxkbui libxkbfile libxt libx11 bigreqsproto inputproto kbproto
libxdmcp libxau libsm libice xproto
Do you want to remove these packages? [Y/n] n
5) now let find who is requiring mesa,
to be sure write simple script info.sh:
#!/bin/bash
for i in `pacman -Q`; do
pacman -Qi $i
done
then do chmod +x info.sh and execute
./info.sh 2>/dev/nul | grep mesa -B 15 -A 1
Name : xorg-res-utils
Version : 1.0.0-1
Groups : None
Packager : Arch Linux (http://www.archlinux.org)
URL : http://xorg.freedesktop.org/
License : None
Architecture : i686
Size : 146504
Build Date : Sat Feb 18 10:39:05 2006 UTC
Install Date : Sat Nov 11 17:14:52 2006 UTC
Install Script : No
Reason: : installed as a dependency for another package
Provides : None
Depends On : libdmx libxaw libxft libxi libxinerama libxtst libxv
libxxf86dga libxxf86misc mesa
Required By : xorg-clients
So, the only package which require mesa is xorg-res-utils which is required by xorg-clients.
Why the hell pacman installed _all_ dependencies of xorg-res-utils _except_ mesa???
And why "warning: cannot find package "mesa" or anything that provides it!" appeared 75 times (!!!) before displaying list of packaged suggested for removal???
But... wait a minute... xorg-res-utils PKGBUILD contains depends=(libxaw) - only 1 dependency instead of 10!!!
WTF???
# cat /var/lib/pacman/current/xorg-res-utils-1.0.0-1/depends
%DEPENDS%
libxaw
OK, now
# /var/lib/pacman/local/xorg-res-utils-1.0.0-1/depends
%DEPENDS%
mesa
libxxf86dga
libxi
libxxf86misc
libxtst
libxinerama
libxv
libdmx
libxft
libxaw
%REQUIREDBY%
xorg-clients
%CONFLICTS%
%PROVIDES%
WTF is going???
1) All this depends except mesa are depends of xorg-utils, not xorg-res-utils!!!
2) WTF mesa is doing here???
3) Why the hell depends are changed at all???
Here we have strange changes in package database which leads to weird behaviour.
Can you please provide some steps to reproduce this, as I can't seem to do it.
But everything as described in the longest comment (http://bugs.archlinux.org/task/5775#comment12437) is clearly reproduceable with rc8 (except pacman doesn't show "warning: cannot find package "mesa" or anything that provides it!" 75 times). I have nothing to add to this comment. See the second part of it - xorg-res-utils record in database becomes wrong - 10 depends instead of 1.
The problem is that xorg-res-utils-1.0.0-1.pkg.tar.gz contained wrong .PKGINFO all time until 1.0.3-1 update!
# Generated by makepkg 2.9.8
# Sat Feb 18 10:39:05 UTC 2006
pkgname = xorg-res-utils
pkgver = 1.0.0-1
pkgdesc = X.Org X11 resource utilities
url = http://xorg.freedesktop.org/
builddate = Sat Feb 18 10:39:05 2006
packager = Arch Linux (http://www.archlinux.org)
size = 146504
arch = i686
depend = mesa
depend = libxxf86dga
depend = libxi
depend = libxxf86misc
depend = libxtst
depend = libxinerama
depend = libxv
depend = libdmx
depend = libxft
depend = libxaw
While PKGBUILD always contained depends=(libxaw) and thus gensync generated the following xorg-res-utils-1.0.0-1/depends in our Current repo:
%DEPENDS%
libxaw
When pacman (any version) installed xorg-res-utils-1.0.0-1 it generated the following /var/lib/pacman/local/xorg-res-utils-1.0.0-1/depends:
%DEPENDS%
mesa
libxxf86dga
libxi
libxxf86misc
libxtst
libxinerama
libxv
libdmx
libxft
libxaw
%REQUIREDBY%
xorg-clients
So, pacman and gensync did everything correctly. It was a weird bug in old makepkg that lead to generating wrong .PKGINFO in xorg-res-utils-1.0.0-1 package.