X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:reply-to:message-id:to:subject :in-reply-to:references:mime-version:content-type :content-transfer-encoding; q=dns; s=default; b=o0IVCG9abX5Rlcvv P92AGVeM1crIVZlvPaVCR0JQe157ZhgMopphOQhVofzG13dIQC9pw/W8EfZQp5wr sfbLDRAj4WivtSPm27zGGW1n5+HgaLzE+KDxOMpWIjs5DpdgIDN+CBm08fGb2mzG s2A5EGKXFHdA6/d6+Ppw71zA434= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:reply-to:message-id:to:subject :in-reply-to:references:mime-version:content-type :content-transfer-encoding; s=default; bh=gRDO/OFlIrLM01/efN4bwt LOp9I=; b=AYKC2ivCgXEBfeQHMd7pxhqMyuCfKyKYWVBIFG5K7ynd/dmE4mFuxu dunBpYPgiOli6S78+iGn/rZ7XtOdfkTj6S7bsWLHS82DBMX/nyW4REUrHqCf3+6Q UhUjHwb2xY4mouIPIrC7HYZM2vlKMQISgCpXF0N4VpfL4EleUJ5RY= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.0 required=5.0 tests=BAYES_00,FREEMAIL_FROM,KAM_THEBAT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=no version=3.3.2 spammy=terrible, HX-Priority:Normal, H*F:D*yandex.ru, H*M:yandex X-HELO: forward105j.mail.yandex.net Authentication-Results: smtp1p.mail.yandex.net; dkim=pass header.i=@yandex.ru Date: Sat, 30 Sep 2017 14:23:14 +0300 From: Andrey Repin Reply-To: cygwin AT cygwin DOT com Message-ID: <19010162357.20170930142314@yandex.ru> To: Sam Edge , cygwin AT cygwin DOT com Subject: Re: Dependency issues in setup.ini. In-Reply-To: <171d601b-59c2-f186-5213-12c6b6f493cd@gmx.com> References: <505405e4-5a2f-8d6b-f012-404bd7d69009 AT gmx DOT com> <216159991 DOT 20170930120008 AT yandex DOT ru> <171d601b-59c2-f186-5213-12c6b6f493cd AT gmx DOT com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Greetings, Sam Edge! >>> It's not production ready yet but it's already flagged up some issues. >>> For example we have lots of dependency loops in the 'requires' fields in >>> setup.ini - even to the point that some packages depend upon themselves! >> Dependency upon itself is curious, but other than that, this is a normal >> situation for a package manager. Some packages are split for easier >> maintenance of each, but are interlocked in their typical usage pattern. > Ah, okay. Fair enough. It can be difficult to keep things layered purely > up & down I know. More than that, naive assumption of no circular dependency is the most common cause for infinite recursions. > Although often it can be resolved by introducing a > third module that acts as the muxer between the other two to avoid cross > API dependencies. But that's a discussion for another mailing list. > But I'm also seeing loops deeper that X->Y->X. More like X->Y->Z->W->X. A list indexed by package name is necessary when you resolve package dependencies. Then you always know when to avoid dependency rescans. > (The self-dependency is cygwin-debuginfo by the way.) :) >>> And also we have some dependency omissions. For example, mintty doesn't >>> depend upon anything - it has no requires field. Surely, every binary >>> package should depend at least upon 'cygwin'? >> While this is "not good", this is also not particularly bad for packages in >> base - this group is always installed. > Indeed. However, while off label usage of Cygwin is anathema to me but > sometimes I wish 'base' wasn't quite so big and have to pare things down > a little once installed, e.g. as part of a makefile- and/or > Eclipse-based build tree in source code control.(Which was also one of > my motivations for the Python stuff.) Rational suggestions are always welcome, I suppose. While my own usage of Cygwin is prone to spread thin across all aspects of my daily work, I can see situations, where a much smaller subset of packages (let's name it "core" or something) would be beneficial. I.e. when packaging Cygwin as part of your own application. -- With best regards, Andrey Repin Saturday, September 30, 2017 14:16:20 Sorry for my terrible english... -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple