DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 45M5bKRm596508
Authentication-Results: delorie.com;
	dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=ji5afHl4
X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BCCA4382EF16
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1719034638;
	bh=6pQS1qa7jfbuhljhm7lhJT2nmzYW5ojfEULwkxYobB4=;
	h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe:
	 List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
	 From;
	b=ji5afHl4mEiGWYz47phpzQSmUv8V1mdaDP0mUz40KWRCNwZkNbZYYal9bIf1F1CQJ
	 n67nDkYalTV1B3UsSFY4hPWvU4NpzDzB7UyvJBEAWZa7zsWgLp/V1NJWsUXHgZix9N
	 sHjRTbChgWXwU9buQUWTlmWezPA1yBRoH0yp3sVk=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8C1B03858C98
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8C1B03858C98
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1719034586; cv=none;
 b=w1NK1q4DJ6X85aMS8wAn8uim4q2KQFj5VHTUJhiuK8yYgGpruVqVH38zzkJyXAXTaXrLiTQvIRywwA++QPu+uUGQ6XTVsvX0PHCjZUaxdAqUSGvRKwEyNSbNXTyvvKNSjvQAGD/CSzGj0kjj69/zelT8oWSUWvVv2AyriQmVQME=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
 t=1719034586; c=relaxed/simple;
 bh=3BWwwXlx6I8O2GiwXrPVBEBObtwkwBZhFKy5PlNf/w4=;
 h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From;
 b=YN7Mje6EwS86hFamsPq3hV8G7s+sDkZdG99J8wbn5RMIe3Jhm6xfqBrZjR26+U0eIoIY+i/cPSA/j+UOgxLe8ceMIyp78lTZFeqvBwMhD2ZNeqR3u0PQT6CgkaQZUQZ+JJnTnLOoF4A/kVc3ekVInhREwtjVl7jGyGff+5FvfFQ=
ARC-Authentication-Results: i=1; server2.sourceware.org
Message-ID: <d0ba9f25-f116-4c10-913b-beb835de5653@kircheis.it>
Date: Sat, 22 Jun 2024 07:36:19 +0200
MIME-Version: 1.0
Subject: Re: Analyze dependencies of a cygwin package
To: cygwin@cygwin.com
References: <07082870-22a4-47a6-8fec-4ef954d181d1@kircheis.it>
 <ff59d014-94ec-490d-980c-538177daf658@maxrnd.com>
 <a61a7379-a470-4bb8-9a93-fef3fa25f2c3@kircheis.it>
 <20240622072242.a4d73ac071285066af58f56a@nifty.ne.jp>
 <20240622092917.43a848baf5e90159357efcfb@nifty.ne.jp>
In-Reply-To: <20240622092917.43a848baf5e90159357efcfb@nifty.ne.jp>
X-Rspamd-Queue-Id: 4W5jdJ5vyZz9sRj
X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00, DKIM_SIGNED,
 DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,
 SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on
 server2.sourceware.org
X-BeenThere: cygwin@cygwin.com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-request@cygwin.com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=subscribe>
From: Federico Kircheis via Cygwin <cygwin@cygwin.com>
Reply-To: Federico Kircheis <federico@kircheis.it>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie.com@cygwin.com>

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

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple
