What's the difference with licenses in simple wording

Anything related to "legal" stuff is hard to talk about simply. An example is any of the "GNU" licenses (GPL, LGPL). Exactly what version makes a lot of difference.

I agree with SirDice for home use, not an issue unless you are modifying code. If you are trying to sell a product, it could make a huge difference.
 
Put simply, GPL is "copyleft" which means its basically the opposite of most copyright licenses, while BSD, MIT, and other "permissive" styled licenses are more like a middle-ground between the GPL and traditional copyright licensing. I am not a programmer or businessman, so I have no reason to care but I do prefer the permissive licenses since its truly free software, i.e you can choose to share or not to share if you ever made changes.

I am an open-source advocate so when possible (unfortunately this is not the case for firmware blobs) I won't use something I can't audit or modify even if I don't plan to, but I also don't like using something I'm forced to share with the same license which is the case for the GPL (excluding the LGPL I think). I will always make free and open-source software but there's no reason it has to be according to Richard Stallman's definition of free.
 
gcc is gplv3
llvm is apache 2.0
But what does this mean in possible usage ?
Well, they are both tools, typically not distributed with the final product.
When one is building a house, the licensing of the saws and hammers is irrelevant because the saws and hammers aren't distributed with the house.
 
Can I state that if i make a derivative from gcc that i'm forced to publisize that code.
Whereas with llvm i can hide my code making the derivative ?
 
  • Thanks
Reactions: mer
Can I state that if i make a derivative from gcc that i'm forced to publisize that code.
Whereas with llvm i can hide my code making the derivative ?
I think compilers are a bit different because they are needed to produce running code but I'm not a legal specialist. Just to be clear about where the possible issue might be, I see two options:
  1. modifying a compiler and shipping the modified compiler as part of your product and not making the modifications public.
  2. modifying a compiler and not including this modified compiler with your product. Your product consists of your own code and that code is only compiled with the modified compiler; you do not want to make the code in your product public.
 
  • Like
Reactions: mer
Can I state that if i make a derivative from gcc that i'm forced to publisize that code.
Whereas with llvm i can hide my code making the derivative ?
simple answer: yes I believe that is correct. llvm may be more accurate as "You are not required to make your changes public"
 
A phylosofical question is , is the Freedom of Richard Stallman , real freedom?
My opinion only, no. Because he is binding you (your changes) to something you were not a party to in the beginning.
If you look more at the results of GNU license, it's to make sure that your changes are released back to the community, so the "code is free and has everyones changes"
 
Can I state that if i make a derivative from gcc that i'm forced to publisize that code.
That's an exaggeration. If you modify (L)GPL'ed code, and you ship, sell or distribute something that uses those modifications, then you have to publish your modifications. But if you only use the modifications in-house, you do not have to publish. And in the above sentence, "you" can mean an organization. So a giant company (like IBM, Intel, General Motors or Google) uses GPL'ed software, such as gcc or Linux, only in-house, they can modify it without having to publish the modifications.

Example: I take the Gnu f77 compiler. I modify it, and use it to compile some Fortran programs. I only run these compiled programs on my own computer, at home. I use these programs to make graphs. I then publish the graphs at a research conference, or in a scientific journal. Do I have to publish my modifications to the f77 compiler? No. Because I never allowed anyone other than myself on my own computer to compile or run the modified f77 compiler. If I had given a copy of the f77 executable to a colleague, I would have had to distribute the modified source code to them.

Where it gets a bit tricky: If you use modified GPL software to provide a service. Say you are running your modified gcc to build a web, server and it provides pictures of elephants (my favorite animal). If someone clicks on http://alain.de.vos/elephant.jpg does that mean you now have to publish your modified gcc? Under the AGPL you probably have to, even though people looking at elephant pictures never actually executed the gcc program. Under the normal GPL and LGPL you probably do not have to. But before you rely on that: I'm not a lawyer, nor your lawyer.

(The above f77 example is not quite true: While it is true that I modified the fortran compiler that was used on Linux in the mid 90s, it wasn't the Gnu compiler, which wasn't available yet. I did modify the fortran compiler that came from AT&T though, and I e-mailed my changes back to the author, and I think they showed up in the next release. The purpose of the change was to make the "include" functionality more compatible with VAX fortran: If you include a file from an explicit directory, that directory gets temporarily added to the search path for include files used by the first included file.)
 
A phylosofical question is , is the Freedom of Richard Stallman , real freedom?

This depends on how freedom is defined.
For me a very important point many oversee is personal freedom limits to not abridge other one's.
(The french philosophers of the 18th and 19th century made a comprehensive work about that.)

Back to topic:
I've read some of those licenses (one of the reasons I got rid off my iPhone: "No. I do not accept." :cool:)
Besides some of them licenses changes and fork quicker as you may keep up ("Don't read it, just nod it through"... - "What?! I did not agreed to that!" - "You signed it."),
you still need a lawyer specialized in software licensing to become safe.
What many are not aware of:
Like terms of trade not everything of what's written in those has legal effect under each law (country).

Richard Stallman is an idealist. Personally I have reservations about someone who while on stage in a running podium discussion wears off his sock, picks something from his foot and puts it into his mouth ... 🤢 (well, tastes are different 😂 ) - but his work may be rated as an important part for free software; and if it's only to get publicity on it, to get more people aware that there are alternatives than to pay for it, and that free does not neccessarily means cheap (bad).

Please do correct me if I now tell something wrong:
As far as I understand one core point of GPL - and that's also something many don't know:
Everything you produce with software under GPL has also to be free and open source again.

E.g. you have an electronics company that develops/produces some kind of hardware containing microcontrollers, you'd better be aware of not using e.g. gcc.
Because if you do so by GPL you are not allowed to charge money for the software, and of course you have to publish the source.

So bottom line:
For private, personal use it doesn't really matter much under which license the free software is published you use.

But if you want to do some kind of business try to look for MIT or *BSD licences.
Simplified those say:
Do with it what you want, but
don't steal it (don't put your name on other's work & attach a copy of the license), and
the owners(1) are not responsible for anything results from what you do with it.

Otherwise (e.g. GPL*) things can legally be really messy.
Especially when you're doing already business for a couple of years and then the owner of the software comes along and say:
"Hey, this is not for you to sell! And if it's not all your money."
This really can become ugly.
So you'd better check twice, what your using and doing with it.

---
(1) Another point many don't see:
Just because you didn't pay money for it doesn't mean it's completely free of all legal terms, or it belongs to nobody or everybody.
 
GPLv2/v3 in simple words is: here's the code, no warranties provided. Do with it whatever you want. But if you use it in one of your products, then you have to publish your version of that code including your changes.
BSD in simple words is: here's the code, no warranties provided. Do with it whatever you want. If you use it in one of your products, just make sure that you give us credit somewhere for it.

The GPL in other words enforces people to give back their work on the code, while the BSD license only enforces giving credit to the project somewhere.
 
I used to have an early copy of the book “Free as in Freedom: Richard Stallman’s Crusade for Free Software”. Fantastic book. I gave it away to an eccentric old lady who uses Debian. I sort of regret that now, as it might have become valuable... especially since Stallman got swept up with all the political dreadfulness that’s currently going on. Although, hmm, I don’t know if our Cyborg overlords/descendants in 2080AD will be particularly interested in collecting paper books?
 
I like weak copyleft licenses, something like MPL. When u add to them in the files, you must release that code and give those improvements. By contributing outside of that, you can do what you want. It's somewhere between GPL and BSD licenses, and they're not viral. GPL is viral. As for LGPL which is a weak copyleft license, I'm not sure how much it forces outside of its directory. Apache 2.0 s a permissive license, but it has attributes of a weak copyleft license, where code under a different license must remain separate. The only reason that MPL and Apache licenses aren't compatible with GPL, is because they have a patent clause, which most versions of GPL's viralness makes itself incompatible with those. They dual license to get around that, which imo isn't clearcut as a rule.

Apache and MPL code are kept separate, but can be used and distributed together, according to their terms.

I'd like to see something a bit better than MPL that is better than LGPL, and also something like that which applies to the whole directory. The patent clause is difficult, bc slight differences make them incompatible when used with viral licenses.

Look at FVWM, for instance. It was under a permissive license, once it got absorbed into GPL, those changes can't go back to the original license, and digging up the old one is more difficult. A weak copyleft would have kept most of the original freedoms, and kept it locked out of entering a viral license.

GPL fits in a few places, like end user programs though. Though there's some stuff, including libraries that are better off as permissive or a weak copyleft. In many cases, a permissive license without a patent clause for common libraries would be better, for compatibility with all other licenses, so a library doesn't have to be unnecessarily replicated for function. The only reason a patent clause would be left out, is to make it compatible with viral licenses of GPL's.
 
Back
Top