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.
--
[email protected] mailing list