Matthew R. Lee wrote: > I've just been doing my regular emerge -pvu world and the system wants to > update xorg-x11 to 7.2, fine. To do this I needed to add some packages to > the packages.keywords file, again fine. > My problem is I had to go through the cycle emerge -pvu world add a package > to > package.keywords 11 times, to deal with the 11 masked packages that > xorg-x11-7.2 required. > So the question is, is there anyway to get emerge to list all the masked > dependencies required all at once? (i.e. when I run emerge -pvu world the > first time). I've looked at the man page but didn't see an obvious solution. > Thanks > Matt >
It is a mini-repeat of what one had to do to get 7.0 installed. There were a lot more masked packages to add at that time. I still have a script I wrote for that purpose, it adds any encountered unstable ebuilds to the /etc/portage/portage.keywords file and masked ebuilds to /etc/portage/portage.unmask file: ------------------ #!/bin/sh LASTADD='' UNMASK='' if [ -z "$*" ]; then echo Need package name to emerge exit fi until emerge --deep --nocolor --verbose --pretend $* >/tmp/autokw$$; do if egrep "All ebuilds that could satisfy \".*\" have been masked." /tmp/autokw$$; then #echo error from portage looking at output EBUILD=`grep "^- " /tmp/autokw$$ | head -n 1 |\ sed -e 's/^- \(.*\)-[0-9].*$/\1/'` if [ "$EBUILD" == "$LASTADD" -o -z "$EBUILD" ]; then echo oops same as last time or null: [$EBUILD] if [ ! -z "$UNMASK" ]; then echo already tried to unmask package rm /tmp/autokw$$ exit fi echo trying to add to unmask if grep "All ebuilds that could satisfy" /tmp/autokw$$; then EBUILD=`grep "All ebuilds that " /tmp/autokw$$ | head -n 1 |\ sed -e 's/.*"\([^"]*\).*$/\1/'` echo $EBUILD >> /etc/portage/package.unmask UNMASK="yes" LASTADD='' fi else echo adding [$EBUILD] to keywords file echo -e "$EBUILD\t~x86" >>/etc/portage/package.keywords; LASTADD=$EBUILD UNMASK='' fi else echo could not parse output cat /tmp/autokw$$ break fi done [ -e "/tmp/autokw$$" ] && rm /tmp/autokw$$ ------------------ It's just a hack but it has worked for me a couple of days ago for 7.2 ebuild. On that note, I have also found the etcportclean script useful (just google for it). It scans your /etc/portage files and tells you if you have any redundant entries there. The script might be broken a little from memory but it has worked quite well for me over a long time. Eugene. -- gentoo-user@gentoo.org mailing list