A proper fix for the missing libxcb-aux.so.0 problem
After doing some research on the web, here's what I found to be a good solution to the problem of the missing
libxcb-{atom,aux,event} files.
Basically, the problem is that these libraries no longer exist in
xcb-util. They've all been merged into the file
libxcb-util.so.0 (part of the
xcb-util package).
The first step in fixing this is to correct all of the
*.la (libtool) files under
/usr/local/lib which refer to any of these three libraries. The following command will take care of this:
Code:
cd /usr/local/lib
for f in *.la
do
sed -i '' -E -e 's/libxcb-(atom|aux|event)\.la/libxcb-util.la/g' $f
done
The next step is to determine which ports actually refer to these missing files. The
ports-mgmt/bsdadminscripts port contains a program called
pkg_libchk which can do this. Install the
bsdadminscripts port if you haven't already, then run:
pkg_libchk | tee pkg_libchk.out
(the
tee command will save the output to a file yet still allow you to see it as it's running)
When this is done,
pkg_libchk.out will contain a listing of all of your installed ports which reference missing libraries. We can clean up this output like so:
Code:
sed -i '' -e 's/:.*$//' pkg_libchk.out
sort -u -o pkg_libchk.out pkg_libchk.out
(the
sed command deletes everything except the actual package names; the
sort command will eliminate multiple references to the same package)
pkg_libchk.out should now contain a list of packages that depend on missing libraries.
Now, all that's left is to do a forced reinstall of the packages listed here.
[cmd=]portmaster `cat pkg_libchk.out`[/cmd]
You may run into some other packages along the way that cause these builds to fail. If so, rebuild the problem packages first, then run the above command again.
This should leave you with no more packages depending on the missing
libxcb-* libraries.
Happy port-fixing!
Conrad Sabatier