Date: Wed, 05 Mar 2014 19:43:19 +1100 From: Kubilay Kocak <koobs.freebsd@gmail.com> To: Kevin Oberman <rkoberman@gmail.com>, Jan Henrik Sylvester <me@janh.de> Cc: ports-list freebsd <freebsd-ports@freebsd.org> Subject: Re: Circular dependency, because x264 links ffmpeg Message-ID: <5316E3A7.30406@FreeBSD.org> In-Reply-To: <CAN6yY1s8cFpW1e8B1_Vtag9WwbGHMqmqa4SuvQnEntX=CZSwxA@mail.gmail.com> References: <5316441D.8080607@janh.de> <CAN6yY1s8cFpW1e8B1_Vtag9WwbGHMqmqa4SuvQnEntX=CZSwxA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 5/03/2014 2:02 PM, Kevin Oberman wrote: > On Tue, Mar 4, 2014 at 1:22 PM, Jan Henrik Sylvester <me@janh.de> wrote: > >> # pkg info -r ffmpeg >> ffmpeg-2.1.1_1,1: >> libxine-1.2.4_5 >> vlc-2.1.2_2,4 >> libstreamanalyzer-0.7.8_3 >> x264-0.136.2358_3 >> # pkg info -r x264 >> x264-0.136.2358_3: >> ffmpeg-2.1.1_1,1 >> ffmpeg0-0.7.16_1,1 >> opal-3.10.10_2 >> vlc-2.1.2_2,4 >> >> Not good. Since multimedia/ffmpeg depends on multimedia/x264 by default >> (the option X264 is enabled by default), my x264 installation must be >> broken. >> >> After forcibly deleting x264 and rebuilding the port, it still depends >> on ffmpeg: >> >> # pkg which /usr/local/bin/x264 >> /usr/local/bin/x264 was installed by package x264-0.136.2358_3 >> # readelf -d /usr/local/bin/x264 | grep libav >> 0x0000000000000001 (NEEDED) Shared library: [libavutil.so.52] >> # pkg which /usr/local/lib/libavutil.so.52 >> /usr/local/lib/libavutil.so.52 was installed by package ffmpeg-2.1.1_1,1 >> >> The x264 port is doing something wrong (in the presence of ffmpeg). >> >> This will probably only happening building ports in an unclean >> environment, but I would have expected pkg to detect this and warn while >> registering the pkg, while creating a package from it, or while this >> package is installed on another machine. I never saw a warning. >> > > I'm confused. When I look at the Makefile for x264, I can't see ny reason > that it would depend on ffmpeg. It has no direct dependency. As far as > indirect ones, I see libX11, gcc-4.6, gpac-libgpac-0.5.0,1. > > When configuring, I see: > ===> x264-0.136.2358_3 depends on package: yasm>=0.6.0 - found > ===> x264-0.136.2358_3 depends on file: /usr/local/bin/bash - found > ===> x264-0.136.2358_3 depends on executable: gmake - found > ===> x264-0.136.2358_3 depends on executable: gcc46 - found > ===> x264-0.136.2358_3 depends on file: /usr/local/bin/as - found > ===> x264-0.136.2358_3 depends on file: > /usr/local/libdata/pkgconfig/x11.pc - found > ===> x264-0.136.2358_3 depends on shared library: libgpac.so - found > > But I see that it links to libavformat, libavcodec, and libavutil, all part > of ffmpeg. > > Oddly, my 9.2 system has no dependency on ffmpeg: >> pkg_info -r x264-\* (y|n|e)?yes > Information for x264-0.136.2358_3: > > Depends on: > Dependency: openssl-1.0.1_9 > Dependency: png-1.5.18 > Dependency: jpeg-8_4 > Dependency: gpac-libgpac-0.5.0,1 > > Looking through the build log I can only see the final link of the x264 > does pull in all of those libs. Note that lib264 has no dependency on > ffmpeg. It is the x264 executable that uses it. > > I think the only fix would be to split the port into building the library > in one port (libx264) and the utility in another (x264). > Hi :) This is a known issue, please see the thread on freebsd-multimedia: http://lists.freebsd.org/pipermail/freebsd-multimedia/2014-March/014717.html Root cause is: a) automatic configure detection of libraries (which then links), AND b) pkg automatically detecting the linked libs and auto-adding pkg dependencies Will have something out shortly. Koobs
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5316E3A7.30406>