latest ports update breaks Firebird 2.5.1 server building

Yesterday I updated my whole ports collection with portmaster -a. Everything seems to have got fine, but today I noticed that my Firebird 2.5 server doesn't start up any more. I tried to reinstall the Firebird server (and client), thinking that maybe portmaster somehow skipped it or something. Now today I can't build Firebird at all, because it says libicui18n.so.48, libicuuc.so.48 and libicudata.so.48 are missing. The /usr/local/lib contains *.50 versions now.

I did some more Google searching and tried the following command portmaster -r icu to to somebody else reporting a similar problem a few years back (older version of libicui18n.so). After a lengthy compile, Firebird 2.5 failed again, but it did update/reinstall a whole lot of libraries etc.

So I manually tried a Firebird 2.5 build, and still it fails with the same error. As a last attempt, I tried to create the *.48 symlinks pointing to the *.50 libraries. That didn't help either.

Anybody got some idea of what I can try now? In the mean time I had to move my Firebird database to another FreeBSD server, where I haven't updated the ports collection yet (and I don't think I will now, don't fix what isn't broken). :)
 
This is what happens when you don't check /usr/ports/UPDATING before installing or updating ports. Please get in that habit. Always check the file first. Yes, always.

After things are broken, it's too late to save the old version of the library, like the 20121218 entry shows. So now you need to rebuild all the things that need the library. Install sysutils/bsdadminscripts and run pkg_libchk(1). -q makes the output shorter. It will show installed ports that are missing libraries and need to be rebuilt.
 
Thanks wblock. I only have 3 months of FreeBSD experience, and yet I only recently heard about the UPDATING file, which I now do check.

During my review of the UPDATING file, that is where I found the suggested command 'portmaster -r icu'. I was under the impression that that command would rebuild all packages that required the icu library. But during the rebuild, the Firebird Server building failed.

I'll run the pkg_libchk now, and manually rebuild all packages it lists. Thanks for the tip.

In the mean time I found that even though I can't rebuild the Firebird Server, I could get my existing install to work again. I simply created the *.48 symlinks to point to the *.50 ones. I know it is probably not reliable doing it that way, so I still want to find the correct fix here.
 
See Thread 32311 for an example of problems caused by linking libraries. I think that even hides the problem from pkg_libchk(1).

The UPDATING instructions for icu use -w with portmaster. That saves the old library, so programs that still need it will still run. And yes, -r should rebuild anything that needs it, but ports are complicated enough that it is not always guaranteed.
 
Back
Top