Unlike LGPL, GPL requires projects using the library to be open sourced too (and use GPL at that)...
NONE of the GPL projects mentioned in this thread are libraries.
When I say "library", I'm referring more to the method by which one program
is effectively used by another, not to the way it is
intended to be used by another.
Two separate executables exchanging data via I/O streams or over a network are clearly two distinct programs, one using the other for a particular purpose.
However, if one program links to another program's source (except the main() file) and the resulting executable is ultimately a single one, then clearly this is one program effectively using another as a library, even though the original program is not intended to be used as a library.
Everything in between is unclear AND it is possible to effectively use a GPL non-library software in such a blurry fashion.
The line with RouterOS in particular is very blurred, because there's a disconnect between the way one uses RouterOS vs. the way RouterOS is physically layout out its files on a HDD. You can only configure RouterOS by MikroTik specific UIs that interact with the other subprograms, but for different reasons, certain components are or aren't laid out as distinct files, communicating with one another by various means, and there's no indication as to how subprograms are laid out, and there's no practical way to tweak or replace the GPL components of RouterOS.
And yet, that very scenario is only explicitly required in GPLv3, i.e. GPLv3 requires that "bundles" that include GPL-ed software must allow the drop-in replacement of the GPLv3 licensed software with a compatible version, or if that's impossible, consider the related piece (the one that makes separation impossible) as a derivative work, and open source that component under GPLv3... With GPLv2, the line is left to be interpreted.