How I fixed libxcb-aux.so.0 missing problem

Dumb and boring package management? Dirty trick! I fixed the xcb-util missing libxcb-aux.so.0 simply getting this file from another FreeBSD (clean install, upgrade old Unix way) machine and copy it to /usr/local/lib. FIXED! Nautilus and other packages requiring it works just fine. Now, when I have some spare time, I will try to hack the Dolphin problem too and I will forget to "upgrade" FreeBSD until 2013 come. I want my life back :)

Refer to this post for details:

HTML:
http://forums.freebsd.org/showthread.php?t=29072
 
Or you could have made a few symlinks to keep things running while waiting for a proper upgrade to finish.
I used something like this.
Code:
lrwxr-xr-x  1 root  wheel      14 Jan 19 15:21 /usr/local/lib/libxcb-atom.so.1@ -> libxcb-util.so
lrwxr-xr-x  1 root  wheel      14 Jan 19 15:21 /usr/local/lib/libxcb-aux.so.0@ -> libxcb-util.so
lrwxr-xr-x  1 root  wheel      14 Jan 19 15:21 /usr/local/lib/libxcb-event.so.1@ -> libxcb-util.so
 
jalla said:
Or you could have made a few symlinks to keep things running while waiting for a proper upgrade to finish.
I used something like this.
Code:
lrwxr-xr-x  1 root  wheel      14 Jan 19 15:21 /usr/local/lib/libxcb-atom.so.1@ -> libxcb-util.so
lrwxr-xr-x  1 root  wheel      14 Jan 19 15:21 /usr/local/lib/libxcb-aux.so.0@ -> libxcb-util.so
lrwxr-xr-x  1 root  wheel      14 Jan 19 15:21 /usr/local/lib/libxcb-event.so.1@ -> libxcb-util.so
Thanks Jalla! do you maybe have any idea about the Dolphin problem and the shutdown KDE problem I reported in the post linked in this thread too? Thanks in advance!

A quick dirty fix is enough! Then for now I'm out of ideas :)
 
It might work now but you're going to get a whole lot more problems if you keep it this way.
 
SirDice said:
It might work now but you're going to get a whole lot more problems if you keep it this way.
Except for the base system and security holes, I wont "update" that box anymore in one year. If it works, just don't fix it. That is the first rule for me, especially - or better, only - with FreeBSD.

Now I need to just fix those two KDE problems and I'm done, also if obviously now the box is 99,50 per cent works like I want.
 
Next time you need to update something you're going to forget you did this. Then you're going to run into problems again.
 
SirDice said:
You need to rebuild all ports that depend on xcb-util.
It means: from two days to one week depending on the number of packages installed on his system. No thankx.
 
Those symlinks are probably causing problems. It's quite possible the ports that depend on it didn't rebuild correctly because of it.

Remove those symlinks and try to rebuild the port(s) that are causing problems.

I know symlinking libraries is sometimes suggested as a fix but it's really very bad advise and shouldn't be used.
 
SirDice said:
Those symlinks are probably causing problems. It's quite possible the ports that depend on it didn't rebuild correctly because of it.

Remove those symlinks and try to rebuild the port(s) that are causing problems.

I know symlinking libraries is sometimes suggested as a fix but it's really very bad advise and shouldn't be used.

yes, that was a temporary fix. Many thanks indeed for your times.
 
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
 
Oh, that is very helpful. At the time I did my portupgrade for those not in synchronization with ports tree, I had only hints form /usr/ports/UPDATING and a few complains about the same situation of mine.

And here are screen shot on Dec. 18 2011
Code:
[dell] ~> cat /root/xcb-util-error.scr 
xfce-utils-4.8.3/icons'
gmake[3]: Nothing to be done for `all-am'.
gmake[3]: Leaving directory `/kaitag/MANEE/usr/ports/sysutils/xfce4-utils/work/x
fce-utils-4.8.3/icons'
gmake[2]: Leaving directory `/kaitag/MANEE/usr/ports/sysutils/xfce4-utils/work/x
fce-utils-4.8.3/icons'
Making all in xfrun
gmake[2]: Entering directory `/kaitag/MANEE/usr/ports/sysutils/xfce4-utils/work/
xfce-utils-4.8.3/xfrun'
  CC     xfrun4-xfrun-dialog.o
  CC     xfrun4-xfrun-dbus.o
  CCLD   xfrun4
libtool: link: cannot find the library `/usr/local/lib/libxcb-aux.la' or unhandl
ed argument `/usr/local/lib/libxcb-aux.la'
gmake[2]: *** [xfrun4] Error 1
gmake[2]: Leaving directory `/kaitag/MANEE/usr/ports/sysutils/xfce4-utils/work/x
fce-utils-4.8.3/xfrun'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/kaitag/MANEE/usr/ports/sysutils/xfce4-utils/work/x
fce-utils-4.8.3'
gmake: *** [all] Error 2
*** Error code 1
 
Stop in /usr/ports/sysutils/xfce4-utils.
*** Error code 1
[dell] ~>

that was the result of [CMD=""]# portupgrade -x gcc -x chromium -pwerR xfce4-utils[/CMD] and I got it by scrolled up the screen to see the error and captured with[CMD=""]# vidcontrol -P < /dev/ttyv7 > ~/xcb-util-error.scr[/CMD]

Once again many thanks indeed for your times.
 
First of all: Thanks to conrads.

Based on your post I 'wrote' a little script to do all the steps or just put out some lists with missing libraries and the 'libless' ports.

emha
 

Attachments

  • fix_libs.txt
    3.6 KB · Views: 512
jotawski said:
yes, I did as suggested by /usr/ports/UPDATING but that did not solve the problem which is very strange indeed.

Same here. Did the symlink and forgot about it. Until the next upgrade, new problems will show up anyway :p
 
wblock@ said:
Like putting tape over an oil warning light, it will get your attention later.

Oil warning light would be the equivalent of lets say losing /dev/ad0. Death has come, he just hasn't knocked the door yet, and it's a matter of minutes before he does.

Now the libxcb-aux.so problem would be the equivalent of erasing a P420 fault caused by bad fuel (and bad fuel in the FreeBSD world is the absolute norm, in fact every user makes his own fuel, to the point that correct function is a matter of coincidence).

P.S. This libxcb-aux problem was simply too much for many people who use FreeBSD as a tool. Many of us could find/do/write many of the hacks in this page. Unfortunately when we have families to feed we cannot spend days until we figure out that it's not our fault that ports do not build, or that the /usr/ports/UPDATING advice fails miserably to solve the problem.
 
It's okay to make an emergency repair. The important thing is to not mistake a temporary emergency repair for a permanent repair. Fix it for real as soon as possible. When a temporary fix starts causing mysterious problems months later, after all memory of doing it is gone, that's when it starts taking serious amounts of time.
 
wblock@ said:
It's okay to make an emergency repair. The important thing is to not mistake a temporary emergency repair for a permanent repair. Fix it for real as soon as possible. When a temporary fix starts causing mysterious problems months later, after all memory of doing it is gone, that's when it starts taking serious amounts of time.

Experience says that this is the fastest way to go, because months later, most probably similar failures will arise (I haven't got one single problem-free upgrade of FreeBSD ports since 1997, I am talking workstation here not server). Sure, leaving garbage in the system definitely sucks, but spending our life just to get one single port compiled sucks even more.
If you think about it, those symlinks are harmless, and will be eventually irrelevant, unless someone decides to bring them back, in which case they will be overridden.
 
achix said:
Experience says that this is the fastest way to go, because months later, most probably similar failures will arise (I haven't got one single problem-free upgrade of FreeBSD ports since 1997, I am talking workstation here not server). Sure, leaving garbage in the system definitely sucks, but spending our life just to get one single port compiled sucks even more.
If you think about it, those symlinks are harmless, and will be eventually irrelevant, unless someone decides to bring them back, in which case they will be overridden.
This is exactly the point! It happened the same for me too: even with a totally clean system (no packages installed, just a list of ports to build) Portmaster fails miserably to do things properly without human intervention to solve problems. This is just inacceptable and this is the reason becouse I say FreeBSD is still a the same 1994 level.

If they (FreeBSD Foundation) don't understand it, it is sure they loose very many customers. I personally been on and off from the project for years, and I still am. Also if I do appreciate FreeBSD base OS a lot for the reasons I explained in other posts.

It is evidently in this forum very many people just have nothing better to do than compile and recompile and to fix stupid package code. No pun intended, obviously, it is just the impression when you read some replys.
 
Back
Top