This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
Re: [PATCH] make setup mirror list more like web page not just urls
- From: Ken Brown <kbrown at cornell dot edu>
- To: cygwin-apps at cygwin dot com
- Date: Fri, 17 Nov 2017 08:48:19 -0500
- Subject: Re: [PATCH] make setup mirror list more like web page not just urls
- Authentication-results: sourceware.org; auth=none
- References: <09c0dc5b-f975-42a9-a204-b02edef6a3ad@SystematicSw.ab.ca>
On 11/15/2017 4:35 PM, Brian Inglis wrote:
Hi folks,
[reposted without text attachment to see if patch gets thru]
Working on a FAST_CWD FAQ, looking at the Setup mirror site page and the web
page, I wondered if we could usefully add the mirrors.lst region and territory
(called area and location in the code) to the Setup display, to avoid users
having to refer to the web page to find out where mirrors are based geographically.
I think this is a good idea in principle, but it still needs some work.
The first change was to prefix the displayed_url member in site.cc
site_list_type::init "constructor" with "area - location - ".
The sort key was the mirror url host name with the domain components in reverse
order to sort non-country TLDs together before CC TLDs.
The code tested for TLD length == 3 to distinguish between CC and non-CC TLDs,
as this code is over 10 years old and there were only the original com, edu,
gov, mil, net, org non-CC domains, before other gTLDs were added.
That test was changed to handle all gTLDs with length >= 3, to prefix area and
location to the sort key member, reverse the domain components in the servername
field instead of the url host, and suffix the url protocol prefix to keep the
key unique where sites offer both ftp and http mirrors, rather than the whole
url in the original.
Adding the protocol to the key instead of the full url isn't enough to
guarantee uniqueness of the key. Users can add their own sites for
which that fails. Also, you shouldn't be relying on the servername
field being filled in. For example, the function
SiteSetting::registerSavedSite() explicitly constructs a site 'tempSite'
that has an empty servername.
The required patch is attached for discussion: some may not like the display of
the default mirror from /etc/setup/setup.rc last_mirror, which appears in the
list as " - - url", as the other mirrors.lst fields are not currently saved
under last_mirror, and more work may be needed to improve this.
If the saved url corresponds to a site in the list, I think setup should
recognize this rather than listing the same site again as " - - url".
Ken