From: Ken Brown <kbrown@cornell.edu>
To: cygwin-apps@cygwin.com
Subject: Re: [PATCH] make setup mirror list more like web page not just urls
Date: Mon, 20 Nov 2017 22:59:00 -0000 [thread overview]
Message-ID: <c4cc836f-8118-669e-c90b-f3ad2f7a503f@cornell.edu> (raw)
In-Reply-To: <53a8001e-10ae-6318-ba3d-31d0cfa18f14@SystematicSw.ab.ca>
On 11/20/2017 4:30 PM, Brian Inglis wrote:
> On 2017-11-17 06:53, Jon Turney wrote:
> On 11/17/2017 8:48 AM, Ken Brown wrote:
>> On 15/11/2017 21:35, Brian Inglis wrote:
>
> Thanks for your comments, I understand all your points, and agree with them.
> I merged the posts and responses as they addressed the same issues.
> I also applied Ken's setup patch and rejigged mine where required.
>
> KB> Ken Brown
> JT> Jon Turney
>
> KB> I think this is a good idea in principle, but it still needs some work.
>
> JT> use a grid control to present this information.
>
> Don't think I want to learn that much about Windows controls!
> The width of the longest fields in each column would need to adjust the grid
> and dialogue box widths, and Add button position, dynamically, which I did
> manually, and the internal blank space may be a bit harder to scan for users
> who are interested only in their geographic region, country, or territory
> - these are pretty well aligned as strings.
>
> KB> Adding the protocol to the key instead of the full url isn't enough to
> KB> guarantee uniqueness of the key.
> KB> Users can add their own sites for which that fails.
> KB> Also, you shouldn't be relying on the servername field being filled in.
> KB> For example, the function SiteSetting::registerSavedSite() explicitly
> KB> constructs a site 'tempSite' that has an empty servername.
>
> JT> This code needs to handle manually added URLs with non-FQDNs.
> JT> - - url...'s going to need fixing.
>
> If host name provided, use as servername, or default to localhost.
>
> If at least two domain components:
> if CC TLD, use as area in uppercase, or
> if gTLD, use as area with init cap;
> if 2-3 char TLD and 2-3 char 2nd level domain, may be subTLD, so if 3rd level
> domain exists and does not start with (or contain?) "cygwin", "ftp", "mirror",
> "www", add space plus 2-3 char 2nd level domain with init cap to area.
> Use next level domain as location with init cap and uppercase after any "-".
> Otherwise default area to Local, and use servername as location with init cap.
> This adhoc approach seems to work well enough and avoids having to drag in and
> process the rules in the Public Suffix List (libpsl5 and
> publicsuffix-list-dafsa).
>
> Examples:
>
> Input ->
> List
> Displayed
> Key
>
> http://mirror.cpsc.ucalgary.ca/mirror/cygwin.com ->
> http://mirror.cpsc.ucalgary.ca/mirror/cygwin.com/;mirror.cpsc.ucalgary.ca;CA;Ucalgary
> CA - Ucalgary - http://mirror.cpsc.ucalgary.ca/mirror/cygwin.com
> CA Ucalgary ca ucalgary cpsc mirror
> http://mirror.cpsc.ucalgary.ca/mirror/cygwin.com/
>
> [cyg]file://server/c$/usr/local/cygwin/var/cache/setup/packages ->
> [cyg]file://server/c$/usr/local/cygwin/var/cache/setup/packages/;server;Local;Server
> Local - Server - file://server/c$/usr/local/cygwin/var/cache/setup/packages
> Local Server server file://server/c$/usr/local/cygwin/var/cache/setup/packages/
>
> cygfile:///var/cache/setup/packages ->
> cygfile:///var/cache/setup/packages/;localhost;Local;Localhost
> Local - Localhost - cygfile://var/cache/setup/packages
> Local Localhost localhost cygfile://var/cache/setup/packages/
>
> file:///c|/usr/local/cygwin/var/cache/setup/packages ->
> file:///c|/usr/local/cygwin/var/cache/setup/packages/;localhost;Local;Localhost
> Local - Localhost - file:///c|/usr/local/cygwin/var/cache/setup/packages
> Local Localhost localhost file:///c|/usr/local/cygwin/var/cache/setup/packages/
>
> Cygwin file:// does not appear to use /// or support anything but local files,
> so should always be treated as localhost; or does it support servers, but they
> can be treated as if directories under Windows, so we need to do a server or
> directory check, or that check is done at a lower level?
>
> JT> you can also just add a path.
>
> If UNC path with server, use as above, but include share name in display,
> otherwise default as above.
>
> Examples:
>
> \\server\c$\usr\local\cygwin\var\cache\setup\packages ->
> \\server\c$\usr\local\cygwin\var\cache\setup\packages/;server;Local;Server
> Local - Server - \\server\c$
> Local Server server \\server\c$\usr\local\cygwin\var\cache\setup\packages/
>
> c:\usr\local\cygwin\var\cache\setup\packages ->
> c:\usr\local\cygwin\var\cache\setup\packages/;localhost;Local;Localhost
> Local - Localhost - c:\usr\local\cygwin\var\cache\setup\packages
> Local Localhost localhost c:\usr\local\cygwin\var\cache\setup\packages/
>
> Where are the cached sites stashed - setup keeps showing my old test entries?
>
> JT> if you add two URLs with the same protocol/host, they aren't distinguishable
>
> Check for and eliminate duplicates after sort if same site_list fields.
> Handled by KB patch.
> Note on flag added by that patch - would is_current, is_good, or is_known be a
> better reflection of what that flag means?
> Should we add ==(string) to compare only the url member?
> Should we add a constructor(string,is_official) to refactor string to site
> conversions, and the url additions?
>
> KB> If the saved url corresponds to a site in the list, I think setup should
> KB> recognize this rather than listing the same site again as " - - url".
>
> JT> If the URL matches one in the list, that item should be selected.
>
> Check for URL match with site list and use match as site:
> added for tempSite in RegisterSavedSites and newsite on Add;
> required as key now includes area and location, not just URL.
> Could we add a check to a string contructor to return only a reference to an
> existing entry, if the url matches, to refactor the above changes?
>
> JT> Store area and location so we can populate those fields if it doesn't.
>
> See above.
>
> JT> Please, please use git-format-patch in future.
>
> I can't tell from looking, does it differ from diff output, and is there a
> reason to use git-format-patch for review?
> I use diffs for feedback until it DTRT.
> I can manage one commit and one format-patch on a good day.
> I should just stick to using what Tortoise Git supports.
> My record with git includes a lot of rm -rf and re-clone, as the files, trees,
> and indices get out of whack when I forget some incantation and try to fix it!
> Very brittle and unfriendly - if it's going to bork itself, just don't do that!
> I never had a single problem with CVS or Hg in many years ;^>
>
> JT> The patch also has some spurious changes to the mode of the manifest files.
>
> Realized I shouldn't tidy up unnecessary x modes under git control - habit
> - gets me into trouble and I learn new things - checked out masters.
Hi Brian,
The issue of recognizing a URL that's already in the list is not fixed.
Here's what I tried:
I ran setup with the last mirror (as stored in /etc/setup/setup.rc)
being http://mirrors.kernel.org/sourceware/cygwin/. The resulting
mirror list display contained the following, highlighted:
Org - Kernel - http://mirrors.kernel.org
So setup didn't recognize that
http://mirrors.kernel.org/sourceware/cygwin/ was already in the list,
displayed as
United States - California - http://mirrors.kernel.org
Also, I don't like the fake 'area' and 'location' fields for user-added
URLs. For example, "Org" and "Kernel" are startling in the display
above and add no information to the plain URL. Another example is my
own personal repository, http://sanibeltranquility.com/cygwin, which
displays as
Com - Sanibeltranquility - http://sanibeltranquility.com
I would rather see the area and location left blank, or perhaps replaced
by "Unknown". A third alternative would be to replace "Area - Location"
by "User-added" or something similar.
Ken
next prev parent reply other threads:[~2017-11-20 22:59 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-15 21:35 Brian Inglis
2017-11-17 13:48 ` Ken Brown
2017-11-19 20:24 ` Ken Brown
2017-11-17 13:53 ` Jon Turney
2017-11-20 21:30 ` Brian Inglis
2017-11-20 22:59 ` Ken Brown [this message]
2017-11-20 23:02 ` Ken Brown
2017-11-22 16:48 ` Brian Inglis
2017-11-22 16:42 ` Brian Inglis
2017-11-23 21:07 ` Ken Brown
2017-11-24 6:23 ` Brian Inglis
2017-11-24 16:21 ` Ken Brown
2017-11-24 21:48 ` Brian Inglis
2017-11-25 16:49 ` Ken Brown
2017-11-25 17:44 ` Brian Inglis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c4cc836f-8118-669e-c90b-f3ad2f7a503f@cornell.edu \
--to=kbrown@cornell.edu \
--cc=cygwin-apps@cygwin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).