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:subject:to:references:from:message-id:date
	:mime-version:in-reply-to:content-type
	:content-transfer-encoding; q=dns; s=default; b=YjvDY677qgRBEQda
	sWcPlazo1f/EEGPsqTERp7xfrKxwWX/ydr6cu1LAMZvQh3JYtsXFb6L9xmMqcHNr
	9cxLPeWyAK62Ya2PaSImquRuQq4C9ZrIvixYo2+WqkUom4IqXiTVg/0uFsoIKOqZ
	9Yw1TToATr5fYAXRDiENTmjGiEA=
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:subject:to:references:from:message-id:date
	:mime-version:in-reply-to:content-type
	:content-transfer-encoding; s=default; bh=0qAw7cYlwYcogkZag/bo4I
	enC0A=; b=Pk0ZP5K++OqAKcw0QR7C/Vww6Z+QMIaHq+GITuqg4grlKfZpI3mKy7
	ZuHuyhj3S0YByGjTvHmU1cdiDBw4SFbvDosKTVHgaX1flzwm7uQdavl7iDSvUzl+
	nO32qcZ3vS/d3Dj3PYXaL6V6BXjQ/sv2eHHOTG/rAo+gA0hRiQ7LM=
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=-2.6 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=H*MI:sk:65f6090, H*i:sk:65f6090, H*f:sk:65f6090
X-HELO: limerock04.mail.cornell.edu
X-CornellRouted: This message has been Routed already.
Subject: Re: Anecdotal: Rebase and Visual Studio 2015 and /etc
To: cygwin@cygwin.com
References: <693uFCmXF1392S07.1467203045@web07.cms.usa.net> <3334CBDB-BF42-4CDA-83B5-CCA5B251A746@etr-usa.com> <98C319EE-D0EF-48CD-85D7-3384DA5051A9@etr-usa.com> <44F329F2-C5FE-47D9-BCC5-BF7F9D85F68F@etr-usa.com> <d83f0551-1a48-b723-f50e-9949bd395823@cornell.edu> <65f60907-79df-ce12-5a61-75caffc7e825@cornell.edu>
From: Ken Brown <kbrown@cornell.edu>
Message-ID: <f321222e-ecab-104a-da60-c7c51d214c35@cornell.edu>
Date: Tue, 5 Jul 2016 16:09:47 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1
MIME-Version: 1.0
In-Reply-To: <65f60907-79df-ce12-5a61-75caffc7e825@cornell.edu>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
X-PMX-Cornell-Gauge: Gauge=X
X-IsSubscribed: yes

On 7/5/2016 9:59 AM, Ken Brown wrote:
> On 7/3/2016 10:02 AM, Ken Brown wrote:

>> This script has a couple of problems.  First, it doesn't take dependency
>> loops into account.  For example, if package p requires q and q requires
>> p, then both will be marked as non-root.  Second, if the mirror was used
>> for both an x86 and x86_64 installation, it always uses the x86
>> setup.ini, regardless of the current architecture.
>
> The second problem is easy to fix.  I think you can fix the first
> problem by using the dependency order computed by setup and recorded in
> /var/log/setup.log.full:
>
> $ grep "Dependency order" /var/log/setup.log.full
> Dependency order of packages: base-cygwin cygwin libdbus1_3 libiconv2
> libintl8 libffi6 libpcre1 liblzma5 libgcc1 libstdc++6 terminfo...
>
> You should only mark a package as a non-root if it is required by a
> package that occurs later in the list.

Sorry, this isn't quite right, at least if your goal is to produce a 
minimal set of roots.  [It will, however, produce a set of roots that is 
not necessarily minimal.]  To get a minimal set you would have to find 
the strongly-connected components of the dependency graph.  [This is 
what is done internally by setup.exe in order to compute the dependency 
order.]  Then when a package is marked as a non-root, all packages in 
the same component should also be marked as non-root.

Ken

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

