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