mplayer-devel: unofficial dependencies

Peter Brommer p.brommer at warwick.ac.uk
Tue Nov 21 13:09:10 UTC 2017


Hi,

thanks Rainer, for the explanation (and for confirming this is actually a defect). I filed a bug: https://trac.macports.org/ticket/55371

Peter


> On 21 Nov 2017, at 11:57, Rainer Müller <raimue at macports.org> wrote:
> 
> On 2017-11-20 17:38, Peter Brommer wrote:
>> Hi,
>> 
>> According to port deps mplayer-devel, this port has the following dependencies:
>> 
>> Fetch Dependencies:   subversion, git
>> Build Dependencies:   pkgconfig, yasm
>> Library Dependencies: jpeg, openjpeg15, lame, libiconv, libmad, gnutls, libogg, libopus, libpng, libtheora, libvorbis, lzo2, ncurses, zlib, bzip2, liboil, libass
>> 
>> However, on one of my machines I now find mplayer-devel to be a broken port, as a number of library files are not available:
>> * /opt/local/lib/libdvdnav.4.dylib
>> * /opt/local/lib/librtmp.1.dylib
>> * /opt/local/lib/libfaad.2.dylib
>> * /opt/local/lib/libdca.0.dylib
>> * /opt/local/lib/libmpg123.0.dylib
>> * /opt/local/lib/libdvdread.4.dylib
>> 
>> These libraries are provided by libdvdnav, rtmpdump, faad2, libdca, mpg123, libdvdread, none of which are in the dependency list.
>> 
>> Is this a bug?
> 
> Yes.
> 
> We usually refer to this as "opportunistic linking" when the build
> system picks up additional libraries without being explicitly instructed
> to do so.
> 
>> If not, can (and should) a macports package use files provided by packages that are present at compile time (but are not formal dependencies of the package to be installed), which are then silently used, and will cause the port to break if they are removed at any point?
>> 
>> The “cure” is obviously to rebuild this port once libraries have been removed, it’s more a question of principle.
> 
> The configure instructions in the Portfile need to written such that the
> port only uses libraries that are explicitly listed in the dependencies.
> Most configure scripts will just try to link with all libraries that are
> available, but something like 'configures.args --disable-foo' should
> prevent the linking with the library.
> 
> In case of mplayer-devel, it looks like the port is supposed to link
> with the checked out version of libdvdnav and libdvdread. However,
> nothing in the Portfile or configure script seems to use that at all, so
> it gets the system libraries via pkg-config instead.
> 
> For the others, it just looks like the corresponding --disable-foo flags
> and variants are missing.
> 
> Rainer

--  
Peter Brommer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-dev/attachments/20171121/02e4b706/attachment.html>


More information about the macports-dev mailing list