Analyze dependencies of a cygwin package
Federico Kircheis
federico@kircheis.it
Sat Jun 22 05:36:19 GMT 2024
On 22/06/2024 02.29, Takashi Yano via Cygwin wrote:
> On Sat, 22 Jun 2024 07:22:42 +0900
> Takashi Yano wrote:
>> Hi Federico,
>>
>> On Fri, 21 Jun 2024 19:35:32 +0200
>> Federico Kircheis wrote:
>>> After some investigation, it seems that ffmeg hash clang (which has gcc)
>> ^^^^^^^^^^
>>> as dependency in its chain.
>>>
>>> I would consider it a bug, although not critical.
>>
>> Do you mean "ffmpeg has clang as dependency"?
>> That's right thing. ffmpeg depends on clang indirectly as follows.
>>
>> ffmpeg depends on libavfilter10.
>> libavfilter10 depends on libOpenCL1.
>> libOpenCL1 depends on libpocl2.
>> libpocl2 depends on clang.
>>
>> pocl uses Clang as an OpenCL C frontend and LLVM for the kernel
>> compiler implementation, and as a portability layer.
Yes, that is what I meant with ffmpeg has (not hash, there was a typo
sorry) clans as dependency in its chain (and not directly).
I do not know this libraries well enough to say if every dependency in
the chain makes sense or not, but the chain as a whole surprised me.
The final effect was having an audio player bringing two C compilers
(clang depends on gcc) as dependency...
At least for one of my setups, having clang/gcc was problematic, and it
needs to download a lot of data...
ffmpeg, as far as I've could see, on Debian does not seem to depend
transitively on clang.
>
> BTW, I looked into cmus.cygport of 2.11.0-2 and noticed that you
> need to patch for configure to enable ffmpeg plugin as attached.
>
> With ffmpeg plugin, many of audio formats get supported by cmus.
Oh, thanks, I'll give it a more detailed look later.
As I do not want to bring some compilers as dependencies, I will not
apply it at the moment.
> Furthermore, you do not need to add ffmpeg to "REQUIRES" because
> the cmus package itself does not really depend on ffmpeg package
> even though it depends libavcodec, libavformat, libavutil and
> libswresample.
Yes, ffmpeg came as transitive dependency, I did not add it directly.
If I remember correctly, one chain looked more or less like
clang -> libpocl2 -> libOpenCL1 -> libavfilter10 -> ffmpeg ->
libavcodec61 -> cmus
> Maybe, you do not have to add any of packages to "REQUIRES"
> because dependencies are added automatically by cygport in most
> cases.
I was already told once that I probably can leave REQUIRES out.
Currently I'm using it for setting up a minimal test environment where I
install only the packages listed in REQUIRES.
Can cygport give me that information if I do not write any REQUIRES?
Last time I asked the answer was no, and thus I decided to keep it to
ease testing on my side.
Best
Federico
More information about the Cygwin
mailing list