X-Recipient: archive-cygwin@delorie.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@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.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 <anrdaemon@yandex.ru>
Reply-To: cygwin@cygwin.com
Message-ID: <19010162357.20170930142314@yandex.ru>
To: Sam Edge <sam.edge@gmx.com>, cygwin@cygwin.com
Subject: Re: Dependency issues in setup.ini.
In-Reply-To: <171d601b-59c2-f186-5213-12c6b6f493cd@gmx.com>
References: <505405e4-5a2f-8d6b-f012-404bd7d69009@gmx.com>   <216159991.20170930120008@yandex.ru>  <171d601b-59c2-f186-5213-12c6b6f493cd@gmx.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

