@
webfork
I am using the official ("non-portable") one. I think you need to be logged in both using your username and the CLI DB credentials.
I found (although my experience is limited) that Cygwin can be made fairly portable. I have in the works a topic about how to do download and extract the needed files for the tools you need. Mostly just .exe and .dll files.
@
Midas
AS far as my understanding goes, you want the following (non-exhaustive) if you want to port a Unix tool to Windows:
- Port the tool itself.
- Take care of any dependencies.
- Take care of what the tool expects when it comes to CLI interpretation (e.g. shells conventions like forward and backward slashes, what handles wildcard expansion, acceptable vs reserved characters like a colon, etc)
As for external dependencies (read: third-party libraries rather than other executables), you have the option to bundle them with your port either statically within the main executable or dynamically. In either case, you will find that you have the added work of updating them too. For example, see the notes within the CLI DB entries about vulnerable/"ignored" tools due to vulnerable SSL libraries.
Also, if you are packaging tools individually (like GnuWin32 or ezwinports), you might have to include a copy of the libraries with each tool that depends on them, which leads to redundancy.
For something like Cygwin, you, as a maintainer, need to link all the different tools to a single "core" .dll, simplifying matters but requiring the end user to install/extract these core files before they can download and use a particular tool.
If you only need an occasional CLI tool, a self-contained port compiled under MinGW may be simpler and easier to manage as a user. If your use case is any deeper, a unified "environment" like Cygwin will be more manageable. It turns out that you only need a bunch of dlls to run most of the main Linux tools.
TL;DR: Cygwin is more of a hassle for an end user (as opposed to a developer/porter) who wants a one-off tool, but actually more organized if you use many Unix ports. Also see MSYS2 (which is like Cygwin on the surface, but built under MinGW)!