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