This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Anecdotal: Rebase and Visual Studio 2015 and /etc


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]