One tidbit on the GPLs: They require you to share alike if you share the software with others, but do not require you to share the software with others. You can make changes and larger programs entirely for your own or your company's internal use, and not share anything.
The GPLs mention this explicitly, and implement it using concepts like "distribute" and "convey". Your obligation to share alike doesn't kick in unless you distribute or convey.
That got GPL into trouble later on, when it turned out folks often ran software for others to use over networks, rather than sharing with users in copies for them to install locally. That led eventually to AGPL, a kind of fork of GPL, but outside FSF, also to licenses that simply require sharing back whether you distribute your work or not.