Re: (FWD) Update gtk2 can;t find pango or cairo 2009Q3

checking for BASE_DEPENDENCIES... configure: error: Package requirements
(glib-2.0 >= 2.19.7 atk >= 1.13.0 pango >= 1.20 cairo >= 1.6) were
not met:
No package 'pango' found
No package 'cairo' found
A few things about pkgsrc that might not be obvious:
if packages are not up to date, building other packages may fail.
This is arguably a bug in pkgsrc, but most of the people who fix bugs
like that have their other packages up to date.
if you have stale work directories, I have found that pkgsrc can get
confused about what's installed. So 'rm -rf */*/work' before you
start.
I use the following script to prepare for pkg_rolling-replace, which is
how I'd do a source jump between stable branches. Running it and then
'pkg_rolling-replace -uv -n' may be useful in understanding the state of
things.
Read it before running; it may not do what you want - it does what *I*
want :-)
----------------------------------------
#!/bin/sh
# $Id: _update-pkgsrc,v 1.16 2009/01/26 15:33:36 gdt Exp $
# Copyright 2007-2009 Gregory D. Troxel, BBN Technologies
# Permission to copy granted under 3-clause BSD license.
# Do automatic periodic maintenance in pkgsrc. Typically followed
# by pkg_rolling-replace.
# This script expects to be invoked as a user, and uses sudo.
# Consider invoking as root and a reverse su for cvs. For now, do the
# sudo tasks early if possible.
# XXX This script assumes that it is operating in /usr/pkgsrc. It
# should be extended to work with the current directory, checking that
# it is a pkgsrc directory.
# Suggested procedure:
#
# run _update-pkgsrc
#
# review PKG.{automatic,manual}-{notrequired,required} to see if
# they are right, and do set/unset of automatic on packages.
#
# review, or ask the user to review manual-*. pkg_delete any that
# are not needed.
#
# remove all automatic-notrequired packages (and repeat until none)
#
# then run pkg_rolling-replace -uv
# (Note that without -u, some prereqs won't be up to date, and
# rebuilds of unsafe_depends packages will perhaps depend on the
# newer version, so -u is typically a good idea unless you have
# looked at the unsafe_depends list.)
if [ "$1" = "noupdate" ]; then
noupdate=t
fi
# XXX Substitute this at build time.
MAKE=make
if [ `uname` = "Darwin" ]; then
MAKE=bmake
fi
# Get new vulnerability data.
sudo download-vulnerability-list
# Ensure that we have binary packages for all installed packages.
mkdir -p /usr/pkgsrc/packages/All
rm -f PKG.missing
(cd /var/db/pkg && ls) \
| while read d; do
if [ -d /var/db/pkg/"$d" ]; then
if [ ! -f /usr/pkgsrc/packages/All/"$d".tgz ]; then
echo $d >> PKG.missing
sudo pkg_tarup -d /usr/pkgsrc/packages/All $d
fi
fi
done
# List working directories (for manual cleanup).
rm -f PKG.WORK
ls -d */*/work > PKG.WORK
if [ ! -s PKG.WORK ]; then
rm PKG.WORK
fi
# Update sources
rm -f PKG.UPDATE
if [ "$noupdate" = "" ]; then
cvs -q up -d -P > PKG.UPDATE.full 2>&1
else
echo "NOUPDATE" > PKG.UPDATE.full
fi
egrep -v '(^[UP]|is no longer in)' PKG.UPDATE.full > PKG.UPDATE
# Check for vulnerable packages.
rm -f PKG.AUDIT; audit-packages | sort > PKG.AUDIT
# Check for mismatched packages
rm -f PKG.MISMATCH; pkg_chk -uq | sort > PKG.MISMATCH
# Make a list of packages not required by anything else.
rm -f PKG.automatic-required PKG.automatic-notrequired \
PKG.manual-required PKG.manual-notrequired
for d in `cd /var/db/pkg && ls`; do
D=/var/db/pkg/$d
DREQ=$D/+REQUIRED_BY
DINS=$D/+INSTALLED_INFO
REQ=notrequired
AUTO=manual
if [ ! -d $D ]; then
continue;
fi
if [ -s $DREQ ]; then
REQ=required
fi
if [ -f $DINS ] && egrep 'automatic=(yes|YES)' $DINS > /dev/null; then
AUTO=automatic
fi
echo $d >> PKG.$AUTO-$REQ
done
# Remove distfiles that are out of date.
lintpkgsrc -mor
# Ensure that we have sources for all packages that are installed,
# plus all packages requested.
pkg_chk -g
cat pkgchk.conf pkgchk-manual.conf | egrep -v \# | while read pkg; do
echo $pkg
(cd $pkg && $MAKE fetch)
done
# Make list of out-dated binary packages, separated by whether they
# are installed or not.
rm -f PKG.old-installed PKG.old-notinstalled
lintpkgsrc -p | egrep -v '^(Cannot extract|Bogus:)' | egrep . | while read p; do
pbase=`basename $p .tgz`
installed=notinstalled
if [ -d /var/db/pkg/$pbase ]; then
installed=installed
fi
echo "$p" >> PKG.old-$installed
done
# Delete binary packages that are old and not installed.
# This must be done after the cvs update, and thus will probably not
# be able to ride the sudo timer.
if [ -f PKG.old-notinstalled ]; then
cat PKG.old-notinstalled | sudo xargs rm -f && \
rm PKG.old-notinstalled
fi