DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 46C6rUgt2214347
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=Ej6DBGvF
X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9BAE3383938E
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1720767208;
	bh=HQBqSj73ZD3Ff6OSGNPRGy1L/EfY6CHWwIOX+5hknKU=;
	h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe:
	 List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:
	 From;
	b=Ej6DBGvFImWOV4E/5a1MLEVmiWcepqeTDmnCuMA1b4YYPbTTfl9O04fk7Oc9iPNFj
	 nEBt9E2qWvdlY4iP03Jg8fVK1j+mRUZ2Dw8ad/JTLflqxNrOKXg9C8fxi7oJNFgXWj
	 WlsPvQByKPGR0cXzNMje2zIwppjc5pwcXibLGrNE=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9369B3858D39
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9369B3858D39
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1720767149; cv=none;
 b=L+fMos0A5GScLvOWjdO//U2XAKjq4DQjFmXACaBeUdo/OoBWCGuyXIzn16NvmQ6e1P2LqrogK1xxJKCyZ7B/rv82vD72rNKmjqgGj92Vswfe7Ed+OOVqnpSn3BUMi+2SD569Hlq7Ov57b3WJgiYA/5LvlLipryiOady+pi9/5/A=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
 t=1720767149; c=relaxed/simple;
 bh=I3SwDWm4hz3W3TADmRbhXeWhofDqvWw8C2DilWev9Xk=;
 h=Message-ID:Date:MIME-Version:Subject:To:From;
 b=h5c51LgLmUKIgWasCA8ewM3Qi8Zhz6bYBidiARDLhkYfymC/WrUn3xea+PyXFniFmPiDQF43MvCPWlFioW4o2ib3mDan/wsXs5PuDoef3TfZI4ukbYyZVa4GowlQEdRV3C7s3mT7WORMTSxLyJbSqfksyW8c4iF1eP5GwGefZAw=
ARC-Authentication-Results: i=1; server2.sourceware.org
Message-ID: <efc1c883-9442-4610-bd4d-3f8d68bf91f0@SystematicSW.ab.ca>
Date: Fri, 12 Jul 2024 00:52:24 -0600
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: cygport - get package dependencies
Content-Language: en-CA
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>
 <d0ba9f25-f116-4c10-913b-beb835de5653@kircheis.it>
 <20240622171749.8f5c6212d92f991f3ca9b51f@nifty.ne.jp>
 <3f395d7a-5930-4b63-baca-03f5c6e506c9@kircheis.it>
 <51279cab-aca9-4f7a-8eac-b55064d60aa2@kircheis.it>
 <875xtht9bg.fsf@Gerda.invalid>
Autocrypt: addr=Brian.Inglis@Shaw.ca; keydata=
 xjMEXopx9BYJKwYBBAHaRw8BAQdAPq8FIaW+Bz7xnfyJ1gHQyf2EZo5sAwSPy/bRAcLeWl/N
 I0JyaWFuIEluZ2xpcyA8QnJpYW4uSW5nbGlzQFNoYXcuY2E+wpYEExYIAD4WIQTG63sbl+cr
 2nyOuZiKvQKcH1E27wUCXopx9AIbAwUJCWYBgAULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK
 CRCKvQKcH1E276DmAP91Bt8kfJhKHYb9b2sao2fxwJFsl1GlRi516WKI0OkphQEA+ULITsPs
 blfzSq+GgI7q4LPfRfTLy4Oo3gorlnhnfgnOOAReinH0EgorBgEEAZdVAQUBAQdAepgIsLwm
 GQicfoIBaB9xHp63MQJqVCPbgPzESTg7EEwDAQgHwn0EGBYIACYWIQTG63sbl+cr2nyOuZiK
 vQKcH1E27wUCXopx9AIbDAUJCWYBgAAKCRCKvQKcH1E27+zoAP4u2ivMQBAqaMeLOilqRWgy
 nV2ATImz1p2v1H5P4kBiDwD3caPK1cxU5lijzuSDCjgtIpgF/avHbjA32fxJdIRwAA==
Organization: Systematic Software
In-Reply-To: <875xtht9bg.fsf@Gerda.invalid>
X-Rspamd-Queue-Id: C08A360009
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS,
 RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS,
 SPF_PASS, TXREP,
 UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6
X-Rspamd-Server: rspamout07
X-Stat-Signature: 558kn4qsboiijc6qbswi4efssh8wsiki
X-Session-Marker: 427269616E2E496E676C69734053797374656D6174696353572E61622E6361
X-Session-ID: U2FsdGVkX19L/6rxHkYY7sJVLCMTBPR6WdTAY7qcABE=
X-HE-Tag: 1720767145-381343
X-HE-Meta: U2FsdGVkX19wuoYK44or0e4iG4+N5PSNgPscZHX9SFrw5NmUvdGvyj9uSkDNqWYttF5cHgma0Dgn/u3sZqr2k95GJy7pNfPwnZES9l+v6G5oq9CGUbDkQS7kbNmX38VMqiq1g60y3BO5IC0wYqlHEskcemb7oSY0HpQ+7GEQDx1+jm4I9Y22ZqgyG/frzPB7YOreW/OLLfQ/S/f0ywQ23wbJkbuZt4dg4euigv8ushJOmLGCWbfuVNGe5JSTaktuwB5F4FrhY4DN9AfGiof8WYPMQcngGnUOI/CcWHfpafcqzuGbmssRIz9nK767tRO+0/B5zt+OdzxNOv4m16C3O6yCvXZ13/G4Ein6tKvgNPP91MIcJlBeagNlvrbfPqkPGXCmZU0uPw4L0cZtZb5ZuQ==
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
Precedence: list
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=unsubscribe>
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: Brian Inglis via Cygwin <cygwin@cygwin.com>
Reply-To: cygwin@cygwin.com
Cc: Brian Inglis <Brian.Inglis@SystematicSW.ab.ca>
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: cygwin-bounces~archive-cygwin=delorie.com@cygwin.com
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie.com@cygwin.com>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 46C6rUgt2214347

On 2024-07-07 11:12, ASSI via Cygwin wrote:
> Federico Kircheis via Cygwin writes:
>> I could move the REQUIRES from the cygport file to somewhere else and
>> use it only myself, but at that point, why not use the REQUIRES?
> 
> What you want might actually be BUILD_REQUIRES?

You need to know the BUILD_REQUIRES to be able to install the required devel 
library packages, and build tools which are not automatically installed as 
cygport dependencies, and to run Scallywag CI builds in GH Actions or Appveyor.

CI builds are useful as they run in pristine containers, so anything missing 
causes the build and/or tests to fail.

Look in the package README, INSTALL, or other build docs for build prereqs, and 
as we are affiliated via Sourceware with RedHat and Fedora and follow some of 
their approaches, look for latest Fedora Rawhide RPM specs for dependencies; if 
not Fedora, OpenSuSE Tumbleweed specs; otherwise Gentoo ebuild, Debian 
sid/unstable control + rules, or Arch PKGBUILD package build recipes, similar to 
cygport, and also any patches they provide, as they may be useful on Cygwin.

These are all accessible from repology.org by searching for a package, listing 
all platforms, and navigating from the package link beside each platform, until 
you find the package build source files.

You can refer to external source files and patches directly in cygport by 
appending to SRC_URI or PATCH_URI, linking directly to the *RAW* source files.

Given that you must know the build dependencies, you can follow the runtime 
dependencies by checking for any library packages provided and required by each 
of the devel packages in setup.ini (-S):

$ echo flac-devel, libao-devel, libavcodec-devel, libavformat-devel, 
libcddb-devel, libcdio_paranoia-devel, libdiscid-devel, libmad-devel, 
libmodplug-devel, libmpcdec-devel, libncurses-devel, libopusfile-devel, 
libpulse-devel, libsamplerate-devel, libvorbis-devel, libwavpack-devel | sed 
's/,//g' | xargs cygcheck-dep -cqSr
...

Then check for any (non-devel) packages needed by each of the library packages 
in setup.ini (-S):

$ cygcheck-dep -cqSn libFLAC{++10,12} libao{,4} libavcodec61 libavformat61 
libcddb2 libcdio_cdda2 libcdio_paranoia2 libdiscid0 libmad0 libmodplug1 
libmpcdec7 libncurses{,++}w10 libopusfile0 libpulse{-mainloop-glib,-simple,}0 
libsamplerate0 libvorbis{,0,enc2,file3} libwavpack1
...

which you may be able to simplify with some long command lines or short scripts.

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                 -- Antoine de Saint-Exupéry

-- 
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

