You don't have to open-source your changes if you're using GPL. You could modify it and use it for your own purpose as long as you're not distributing it. BUT... if you DO distribute it, then your entire project that is using the GPL code also becomes GPL automatically. Which means, it must be open-sourced, and the recipient gets all the same rights as you - meaning, they can turn around and distribute it, modify it, sell it, etc. And that would include your proprietary code which would then no longer be proprietary - it becomes open source.
https://stackoverflow.com/questions/3902754/mit-vs-gpl-license
修改GPL后,如果没有发布,则可以不开源。
链接GPL的共享库,那么你的软件也变成了GPL,也需要开源。LGPL允许链接,不开源。所以也叫做Library GPL.