The difference is that with permissive licenses everyone can take any amount of code, add literally whatever and make it all proprietary. This way, things like MacOS, as well as gaming console firmware for example, were made.
Licenses like GPL don’t allow you to do that - if you borrow anything GPL, you have to make your creation open-source, or else a juicy lawsuit awaits you, technically on copyright basis. For example, Android as a base OS is open-source simply because it uses code from Linux kernel, and the latter is licensed under GPLv2.
The latter is superior since it propagates the open-source code by forcing everyone who used the free code to share their code as well. This proved to be very useful with even corporations having their hands tied into showing the code, ensuring transparency and security for everyone.
GPL is one-way compatible with Apache - that is, you can license programs made with GPL code under Apache, the latter being open-source, even though permissive.
Yes, but it wouldn’t be accurate to say the entire device is. There are multiple pieces of software that are in use on modern Android phones, and some are under copyleft licenses while some pieces are proprietary. https://opensource.samsung.com
They’re both free software licences (i.e. you can get the source code for for BSD licenced software and GPL licenced software that you’re using at no extra charge and modify it as you please). The GPL licence has an additional restriction for developers that says if you use any GPL code in your codebase, your entire codebase must also be GPL or some other compatible open source licence.
This means that if I made some code parses a file format and another developer includes that code in their program to support that file format, they’re now forced to licence their whole codebase with a similar licence to the GPL. If it was BSD then they would only have to mention that they used my BSD licenced code and include a copy of that licence. A user would then be able to go and see my original code that was used, but not the rest of that application’s code or any modifications that the application author made to my code. Because the GPL is too restrictive for most developers here, there’s a version of the GPL called the LGPL which is often used for code meant to be used by other programs which is closer to the BSD licence but additionally requires that if they modify your code, they must also share that modified code.
I usually use a licence in the middle called the MPL (Mozilla Public Licence), which is similar to the LGPL but has a few things I prefer and has the advantage for me of not being connected to the FSF and GNU project.
What’s the difference?
The difference is that with permissive licenses everyone can take any amount of code, add literally whatever and make it all proprietary. This way, things like MacOS, as well as gaming console firmware for example, were made.
Licenses like GPL don’t allow you to do that - if you borrow anything GPL, you have to make your creation open-source, or else a juicy lawsuit awaits you, technically on copyright basis. For example, Android as a base OS is open-source simply because it uses code from Linux kernel, and the latter is licensed under GPLv2.
The latter is superior since it propagates the open-source code by forcing everyone who used the free code to share their code as well. This proved to be very useful with even corporations having their hands tied into showing the code, ensuring transparency and security for everyone.
That does sound better!
Android uses linux code though, how do they get away with licensing under apache
GPL is one-way compatible with Apache - that is, you can license programs made with GPL code under Apache, the latter being open-source, even though permissive.
No, it’s the other way around. The GPL doesn’t allow you to remove the user protections.
Thanks, my bad!
Wait so are Samsung devices open sourced as well?
If your Samsung device uses clean Android, then you run open source OS. Otherwise, nah.
Yes, but it wouldn’t be accurate to say the entire device is. There are multiple pieces of software that are in use on modern Android phones, and some are under copyleft licenses while some pieces are proprietary. https://opensource.samsung.com
One is free (as in air) the other is not.
They’re both free software licences (i.e. you can get the source code for for BSD licenced software and GPL licenced software that you’re using at no extra charge and modify it as you please). The GPL licence has an additional restriction for developers that says if you use any GPL code in your codebase, your entire codebase must also be GPL or some other compatible open source licence.
This means that if I made some code parses a file format and another developer includes that code in their program to support that file format, they’re now forced to licence their whole codebase with a similar licence to the GPL. If it was BSD then they would only have to mention that they used my BSD licenced code and include a copy of that licence. A user would then be able to go and see my original code that was used, but not the rest of that application’s code or any modifications that the application author made to my code. Because the GPL is too restrictive for most developers here, there’s a version of the GPL called the LGPL which is often used for code meant to be used by other programs which is closer to the BSD licence but additionally requires that if they modify your code, they must also share that modified code.
I usually use a licence in the middle called the MPL (Mozilla Public Licence), which is similar to the LGPL but has a few things I prefer and has the advantage for me of not being connected to the FSF and GNU project.