Unable to build /x11/kdelibs3 with updated jpeg-7 port

Mel Flynn mel.flynn+fbsd.ports at mailing.thruhere.net
Fri Jul 24 07:02:27 UTC 2009


On Thursday 23 July 2009 22:14:39 Milan Obuch wrote:
> On Thursday 23 July 2009 23:58:03 Mel Flynn wrote:
> > On Tuesday 21 July 2009 02:59:29 Milan Obuch wrote:
> > > On Tuesday 21 July 2009 12:40:34 Jerry wrote:
> > > > It appears that the /x11/kdelibs3 ports insists on using the older
> > > > "libjpeg.so.9" library. Since updating to jpeg-7, this library is
> > > > no-longer available. Therefore, I cannot build this port.
> > > >
> > > > A complete copy of the build log is available here:
> > > >
> > > > http://filebin.ca/yrdvkw/kdelibs.log
> > >
> > > There is notice in UPDATING, section 20090719,
> > >
> > > I found temporary workaround
> > >
> > > ln -s /usr/local/lib/libjpeg.so.10 /usr/local/lib/libjpeg.so.9
> >
> > I don't know why people keep advising this, it only makes future upgrades
> > harder.
>
> Please read again: it is temporary workaround. At least for me. It makes my
> installed ports working *immediately* with small possibility something will
> not work at all due some ABI chabge or somesuch.

Because experience shows, people reading solutions from google skip the 
temporary part.

> Rebuilding some KDE ports
> took me couple of days (finding the way, compile etc).
>
> The difference - works immediately vs. a week or so without working kde is
> immense.
>
> > The solution is also very simple to determine:
> > % ldd -a /usr/local/lib/libkdefx.so.6|egrep '(^/|jpeg.so)'
>
> How did you determine this is exactly the lib to look into? Just
> wondering...

Cause I actually took the time to read the above mentioned build log.

> > /usr/local/lib/libkdefx.so.6:
> >         libjpeg.so.10 => /usr/local/lib/libjpeg.so.10 (0x28b31000)
> > /usr/local/lib/libqt-mt.so.3:
> >         libjpeg.so.10 => /usr/local/lib/libjpeg.so.10 (0x28b31000)
> > /usr/local/lib/libpng.so.5:
> > /lib/libz.so.5:
> > /usr/local/lib/libXext.so.6:
> > /usr/local/lib/libX11.so.6:
> > /usr/local/lib/libSM.so.6:
> > /usr/local/lib/libICE.so.6:
> > /usr/local/lib/libXrender.so.1:
> > /usr/local/lib/libjpeg.so.10:
> > /usr/lib/libstdc++.so.6:
> > /lib/libm.so.5:
> > /lib/libgcc_s.so.1:
> > /usr/local/lib/libaudio.so.2:
> > /usr/local/lib/libXt.so.6:
> > /usr/local/lib/libmng.so.1:
> >         libjpeg.so.10 => /usr/local/lib/libjpeg.so.10 (0x28b31000)
> >
> > From this you can tell that you need to rebuild libqt-mt.so.3 and
> > libmng.so.1. One more step:
> > % egrep -l '(libqt-mt.so.3|libmng.so.1)' /var/db/pkg/*/+CONTENTS | xargs
> > grep -h '@comment ORIGIN:'
> > @comment ORIGIN:graphics/libmng
> > @comment ORIGIN:x11-toolkits/qt33
> >
> > And those are the ports to rebuild for kdelibs3 to be able to build.
>
> After my symlink trick, portmaster rebuilt everything necessary, so aj
> could remove the symlink afterwards. So I think it was kind of hackish
> solution, but made my fixing *much* easier and, more important, less
> stressfull. That's it. Maybe not nice, but really effective.

And if you'd actually run portmaster -rf graphics/jpeg to begin with, you 
wouldn't have seen the problem, as qt33 and libmng would have been relinked 
before you started on kdelibs3, though we should probably blame that on the 
questionable UPDATING entry about 'www/jpeg'.
-- 
Mel


More information about the freebsd-ports mailing list