lib dependency confusion

Jan Stary hans at stare.cz
Wed Jan 10 20:03:11 UTC 2018


On Jan 10 20:49:21, hans at stare.cz wrote:
> 	path:lib/libssl.dylib:openssl
> 
> This means a 'lib/libssl.dylib' needs to be present in $prefix,
> and if it's not, it gets installed by installing openssl.
> The point of specifying the dependency this way is that
> some port other than openssl can already provide that library,
> in this case typically libressl.
> 
> That's how I have e.g. lynx installed: install libressl,
> then install lynx; it notices lib/libssl.dylib already exists,
> and builds against that, instead of pulling in openssl to provide it.

And it builds and installs and runs just fine, but:

  $ port installed depends:openssl
  The following ports are currently installed:
  cpuminer @2.5.0_0 (active)
  curl @7.57.0_2+ssl (active)
  cvs @1.11.23_2 (active)
  kerberos5 @1.16_0 (active)
  lynx @2.8.8rel.2_3+ssl (active)

(These ports are built the same way.)

  $ port installed depends:libressl
  None of the specified ports are installed.

Obviously,

  $ otool -L /opt/local/bin/lynx  | grep ssl
  /opt/local/lib/libssl.43.dylib (compatibility version 44.0.0, current version 44.2.0)

  $ port provides /opt/local/lib/libssl.43.dylib
  /opt/local/lib/libssl.43.dylib is provided by: libressl

So lynx is among those nstalled depending on openssl,
which is not even installed (conflicts with libressl of course),
but not among those dependent on libressl (which is the case).
Tha can't be right.

In what way does MP record/recognize tha actual dependency
of lynx (et al) on libressl? It does somehow, because

  $ sudo port uninstall libressl
  Password:
  Note: It is not recommended to uninstall/deactivate a port that has
  dependents as it breaks the dependents.
  The following ports will break:
  lynx @2.8.8rel.2_3
  cvs @1.11.23_2
  kerberos5 @1.16_0
  curl @7.57.0_2
  cpuminer @2.5.0_0
  Continue? [y/N]: 


	Jan



More information about the macports-users mailing list