I want all the people who link to my software should also release their code under GPL. But what if someone forked it and attempted to relicense it under the MIT, BSD, Apache, or LGPL licenses? Can I ensure this can't happen?
If your rights to a piece of software derive solely from the GPL -- and this is the usual case for most people who are redistributing GPL software -- then you cannot legally relicense under MIT, BSD, Apache or LGPL, because the GPL does not allow that.
Special cases are possible, of course. If you own the copyright on a piece of software and have not somehow limited your rights to it, then you could simultaneously offer it to some people under the GPL and others under, say, the MIT license -- or more likely, under a commercial license.
5FTR, what's much more common is to offer it freely under GPL and additionally commercially under a proprietary license. Permissive licenses like MIT and BSD don't really make much sense to combine with others, because they're close to “anybody can do anything” already so nobody would have much interest in choosing the alternative license. Apr 27, 2020 at 10:55
@leftaroundabout Updated answer to reflect your thoughts. Apr 27, 2020 at 16:53
4@leftaroundabout GPL/BSD combo licenses are used for compatibility with other projects. One cannot distribute GPL code under a BSD license, that would be violating the "viral" aspects of the GPL. And one cannot distribute BSD code under a GPL license, that would be adding restrictions BSD licenses do not allow. But a "pick either one" license can work with both.– SchwernApr 27, 2020 at 18:40
4@Schwern BSD licenses don't forbid adding restrictions Apr 28, 2020 at 2:29