On Fri, 12 Feb 2010 08:51:54 +0000
Matthew Seaman <m.sea...@black-earth.co.uk> articulated:

> On 12/02/2010 04:22, M M wrote:
> > I followed the FreeBSD guidebook and tried to install the ports
> > 'graphics/sane-backends' and 'graphics/sane-frontends', but when I
> > did this, FreeBSD told me I needed the latest installation of
> > graphics/jpeg (which happened to be jpeg-8, and I only had jpeg-7
> > installed on my machine).
> > 
> > So If I remember correctly, I ended up using *Portupgrade* for this
> > process. I believe I ran 'Portupgrade -ai' which took quite a long
> > time. Portupgrade worked great or whatever Port updating command I
> > ran did a wonderful job....it updated the graphics/jpeg port on my
> > machine.
> 
> The root of the problem you're seeing is due to the change in the
> libjpeg.so ABI version: libjpeg.so.10 is installed by jpeg-8, but most
> of your apps want to link against libjpeg.so.9 installed by jpeg-7.
> Rebuilding all out of date ports (via portupgrade -a) should have been
> the correct action to fix that.  However, some problems with the
> update were discovered and subsequently fixed.  Have you seen this
> entry from /usr/ports/UPDATING?
> 
> 20100205:
>   AFFECTS: users of qt 3 and kde 3
>   AUTHOR: ite...@freebsd.org
> 
>   When building qt33 and kdelibs3 (at least), while they are
> installed, because
>   of -L/usr/local/lib being passed too soon, the currently installed
> libs are
>   used instead of the ones from the build. This makes the build fail
> if you updated any of the libs this qt / kde libs are linked against
> (like libjpeg).
> 
>   For the moment the workaround, when you get to this, is to move the
> old lib
>   out of the way, e.g.:
>   mv /usr/local/lib/libqt-mt.so /usr/local/lib/libqt-mt.so.old && \
>   cd /usr/ports/x11-toolkits/qt33/ && make && \
>   mv /usr/local/lib/libqt-mt.so.old /usr/local/lib/libqt-mt.so && \
>   portmaster -C x11-toolkits/qt33
>   (or portupgrade -w qt-33\*), etc.
> 
> I suggest the best thing to try first is: update your ports tree to
> the latest using csup(1) or portsnap(8) or however you'ld usually do
> it.
> 
> Forcibly delete whatever libjpeg you have installed, and then
> reinstall jpeg-8:
> 
>     # pkg_delete -f jpeg-\*      (This will give you alarming warning
>                                   messages, which you can ignore)
>     # cd /usr/ports/graphics/jpeg
>     # make install
>     # pkgdb -F
> 
> Apply the advice above to move the incorrectly linked shlibs out of
> the way and rebuild them properly.  This might make things work again.
> 
> If it doesn't try and identify any binaries in /usr/local/bin that
> link against missing shlibs and re-install the ports that supply them.
> Do that by running ldd(1) against the apps.  Eg. like this:
> 
> % ldd /usr/local/bin/psi
> /usr/local/bin/psi:
>       libz.so.5 => /lib/libz.so.5 (0x285ff000)
>       libXss.so.1 => /usr/local/lib/libXss.so.1 (0x28611000)
>       libaspell.so.16 => /usr/local/lib/libaspell.so.16 (0x28614000)
>       libQtDBus.so.4 => /usr/local/lib/qt4/libQtDBus.so.4
> (0x286cc000) [... etc ...]
> 
> What you're looking for are lines that say 'libfoo => not found (0x0)'
> For any such, work out what port supplies that application, and
> reinstall it:
> 
>     # pkg_which /usr/local/bin/psi
>     # portupgrade -f `pkg_which /usr/local/bin/psi`
> 
> That's going to be long-winded and tedious, but should still be a bit
> quicker than force-reinstalling everything that depends on jpeg, kde
> and qt.
> 
> > Any advice would be greatly appreciated. At this point I am waiving
> > the white flag and I would love to just get back to my original
> > configuration and forget about installing the image scanner. Above
> > all else, I am just trying to avoid a total reinstall of FreeBSD
> > 8.0.
> 
> There's no need to go that far.  If you want to take a nuke-and-repave
> approach, you can do it by deleting and reinstalling just the affected
> ports.  In extremis, you could do something like this:
> 
>    * Make a note of all the ports you have installed already that
>      depend on libjpeg:
> 
>         % pkg_info -Rx jpeg > ports-I-want-installed
> 
>    * Blow away libjpeg and everything that links against it:
> 
>         # pkg_deinstall -fr graphics/jpeg
> 
>    * Reinstall what you want from ports-I-want-installed.  If you
>      choose the important leaf ports first (the ones that provide the
>      apps you actually use) then most of the ports on that list will
>      get automatically reinstalled as dependencies.
> 
>       Cheers,
> 
>       Matthew

I have been experiencing a similar problem. I cannot locate
libjpeg.so.10 on my system after the update. I do have this version
however:

        $ locate libjpeg.so.11
        /usr/local/lib/libjpeg.so.11

however, nothing wants to link against it.

-- 
Jerry
ges...@yahoo.com

|::::=======
|::::=======
|===========
|===========
|

I'm for bringing back the birch, but only for consenting adults.

        Gore Vidal

Attachment: signature.asc
Description: PGP signature

Reply via email to