On Mon, Mar 29, 2004 at 09:21:34PM -0800, paul beard wrote:
> [ please cc me as I am not on the list]
> I have been trying to upgrade cups to 1.1.20 and have been running into 
> some problems with libraries not being found (specifically jpeg.9 and 
> tiff.4). After a few different iterations of pkg_add, portupgrade, 
> portinstall, and accompanying pkg_delete, pkg_deinstall, make install, 
> etc., I finally tried symlinking the .so files to the numbered versions 
> that don't seem to exist and all seems to be well.
>  ln -s /usr/local/lib/libjpeg.a /usr/local/lib/libjpeg.so.9
>  ln -s /usr/local/lib/libtiff.a /usr/local/lib/libtiff.so.4

I hope the above wasn't actually what you did.  You should have:

    % ls -l libjpeg* libtiff*
    -rw-r--r--  1 root  wheel  157600 Mar 19 15:46 libjpeg.a
    lrwxr-xr-x  1 root  wheel      12 Mar 19 15:46 libjpeg.so@ -> libjpeg.so.9
    -rwxr-xr-x  1 root  wheel  135245 Mar 19 15:46 libjpeg.so.9*
    -r--r--r--  1 root  wheel  374922 Feb  8 10:05 libtiff.a
    lrwxr-xr-x  1 root  wheel      12 Feb  8 10:05 libtiff.so@ -> libtiff.so.4
    -r--r--r--  1 root  wheel  322199 Feb  8 10:05 libtiff.so.4

Linking a static library (.a) to a shlib (.so.N) will have undesirable

> pkgdb doesn't seem to have any problems (I have run it enough times 
> today), cvsup has done its magic a couple of times.

That sounds like what I'd expect, since those commands affect some
completely different sets of files to the ones that are giving you
problems.  A more interesting question would be what output do you get

    % pkg_info -g jpeg-\* tiff-\*

The symlinks in question should be known to the packaging system:

    % pkg_info -L jpeg-\* tiff-\* | grep '.so$'

> I thought portinstall/upgrade -rR would fix any out-of-date ports and 
> make everything happy? What am I doing wrong to make this libraries not 
> get installed?

Yes -- there is certainly something going wrong wrong with the way
your system is operating: maybe not with the ports/packages system
itself, but something took out those symlinks which should have been
there.  If you reinstall those two packages you should get all of
those files and symlinks recreated correctly for you automatically.

However, portupgrade won't necessarily pick up that an installed
package has been damaged.  The ports system will find that, eg.
libjpeg.so.9 is missing (which is the file it specifically checks for
when testing if the correct dependencies have been installed), and so
assume that the whole graphics/jpeg port hasn't been installed.  Then
when it goes to install the missing dependency, and finds that it
isn't actually missing at all.  The general answer to this problem is
to force a re-install of the damaged packages:

    # portupgrade -f graphics/jpeg
    # portupgrade -f graphics/tiff



Dr Matthew J Seaman MA, D.Phil.                       26 The Paddocks
                                                      Savill Way
PGP: http://www.infracaninophile.co.uk/pgpkey         Marlow
Tel: +44 1628 476614                                  Bucks., SL7 1TH UK

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to