Each developer however could then make whatever they wanted with this code, and the GPL didn't control how you used the code in your project.
So you could make a car, and GPL software based control module could have a rev limiter in it. Others could also build cars using your code, BUT there was no requirement that USERS of your product be able to modify your product to for example get around the rev limiter or whatever.
This was battled out in part via the Tivo case, but was also just the normal readers understanding of the GPL.
This gave rise to the GPLv3 - which has the anti-tivoization clause in it. THAT version does say that you have to provide unlock codes etc etc. This ended up NOT being popular with the folks actually writing code.
What's happened though is that EFF / SFC have started to try and falsely claim that the GPLv2 is also like the GPLv3 - which is ironic because people DIDN'T want the GPLv3 over these issues in part.
https://jolts.world/index.php/jolts/article/download/149/269 for an article and
https://www.youtube.com/watch?v=PaKIZ7gJlRU for Linus's take on the GPLv3 in general.
The latest tactic, because they can't get developers to go down the (A)GPLv3 path is to try and create a right that would allow them to sue everyone as activists even though they didn't write any code themselves. That would then let them put their own interpretations of all of this. I think the SFC is pushing that but I don't follow closely enough.
What is remarkable is just how few developers have gotten on board with this group.