I don’t know how to help you with the specifics, so for your own safety I suggest you consult a lawyer. In the meantime, I would like to clarify some general principles on such licences copyleft to help guide you about its use.
Reciprocity
When a software author decides to make a product available as free software - waiving the right granted by law to receive royalties about the same - he does it for some reason. At first, it could simply be the willingness to contribute to the community, without receiving anything in return, but not always. Many expect something in return: the reciprocity from those who receive a copy of their product in keeping it free.
According to Wikipedia, Richard Stallman had worked on a Lisp interpreter for a few years, and agreed to make it available to Symbolics via the public domain (i.e. giving up copyright, unrestrictedly). Symbolics enhanced these interpreters, but when Stallman requested access to the enhanced version his request was refused. The conception of the GPL license followed almost immediately (first a more restricted one, for Emacs, then a more general purpose one, GNU), in order to avoid this kind of situation.
The reciprocity required is quite simple in principle: I give you plenty of freedom to use my software, without charging anything [recurring] for it, and in return you agree to do the same if you improve it somehow and redistribute it (enhance for private use does not require you to do anything). Some licenses copyleft (Affero type GPL) also require that access to sources is given even if it is offered as Saas.
You can consider these requirements reasonable or not, this is with the opinion of each one (as well as each has a different opinion as to the morality of charging for the mere copy of a software, which can be done at virtually zero cost). But the fact is that the licensee expects this reciprocity, on paper, and at first is ready to take legal action against those who do not honor it (and with the support of several organizations that defend free software, such as the FSF).
Hurting the reciprocity
Okay, but what if I make my enhanced version available under a license more permissive that the GPL, will not be maintaining reciprocity? After all, I gave my users all the freedoms that their original product gave, and more... Unfortunately, it’s not that simple. Consider the following scenario:
- Alice offers
A
as GPL;
- Bob improves
A
, and provides B
like MIT;
- Charlie enhances
B
, and provides C
under a proprietary licence;
- Alice asks Charlie for the sources of
C
; Charlie denies;
- Alice sues Bob for copyright infringement because his use of
A
violates the terms of the licence.
You might think, "but what Alice wrote is still free, what is not free is just what Charlie wrote, so she’s complaining about it?" but consider that for Alice it can be interesting strategically that your system remains free. Maybe she doesn’t earn directly with licenses, but she can earn her keep by servicing her product. If a competitor arrives with a better product, she runs the risk of being out of work.
The "X" of the issue here is that Charlie did not simply develop something better than Alice, and reaped the fruits of his own work: he used Alice’s product as a "stepping stone" to establish himself as her competitor.
If this sort of thing were so easy, the amount of free software on the market would hardly be so numerous. Because it would be restricted to hobbists in their spare time, professionals would eventually follow the same proprietary model, in which their perspective of return is more guaranteed.
Edge cases
The GNU GPL has been written very carefully to prevent all kinds of abuse that exploits "holes" in the law. Version 3 includes for example protections against "tivoization" (embedding free software in the hardware or firmware, preventing in practice its modification), or the use of patents to ensure the monopoly of an application despite the conditions of its license, etc. The principle behind the copyleft is important to many people, so I would not underestimate their ability (and disposition) to run after their rights.
Then responding to your questions:
Is there a problem in changing, in the by-product, the license of an open source software?
For the GPL, yes. In general, the software is made with the premise that will be modified, recombined and/or incorporated with other software, so the licenses already seek to deal with this scenario, albeit briefly. Licenses copyfree in general do not require much in this scenario except a correct attribution of the source (i.e. do not deny the authorship of the original). But pras copyleft this is important yes.
You cannot "relicense" something from which you do not own the copyright. In the world of copyright redistribution is the exception, not the rule, so you need to keep in mind that the permission the GPL gives you to redistribute is not a right yours, and yes a privilege in exchange for a counterpart. If you do not agree or are unwilling to give this consideration, you lose the privilege of being able to redistribute the by-product. It’s that simple.
What problems can I have with the amendment and how to avoid them, given the above scenario?
As explained, redistributing is not your right, but a privilege, so that if you do not comply with the license you lose that privilege, and your redistribution will consist of copyright infringement. The consequences of this, I would say that it is more or less the same as you make a copy of Microsoft Windows and redistribute it... Conceptually, at least, to be sure only an expert on these legal issues could say.
How to avoid them, simple: do not violate the terms of the GPL license. If your product is a "derivative work" of a GPL system, either in the most technical sense (any program that runs in the same address space as the GPL program) or in a broader sense, in accordance with the legal provisions of your region (in Brazil, the Law No 9.610), and you choose to redistribute it, do so also under the GPL license, same version or - if the product has been licensed as "GPL version 2 or higher" - a higher version.
Considering the problems, what would be a possible alternative to use two licenses, GPL V2 for what was "forkado" and GPL V3/Apache 2.0 for the new features/features?
It depends: these "new features/features" are self-contained or not? In other words, in the absence of the original software, whether embedded or used together, your system fulfills its purpose, does anything useful? If yes, then it is a system apart, and being of your authorship you can license it as you wish. Otherwise, it is still considered a work derived from the original, so it must comply with the terms of the original product.
The possibilities of structuring your system so that they are or are not independent of the original are quite diverse, so it is difficult to state anything like that in the abstract. However, keep in mind that you are stepping on dangerous ground if you choose to deviate from the licensing model established by the original author.
The GPL license specifies that any "derivative work" must be subject to the same terms as the original work. if
A
is GPL and you developedB
, you can licenseB
as you wish, butA + B
accurate be GPL. This is intentional. Not everyone likes it (I for example do not like it), but it is a strategic decision on the part of the author, and needs to be respected.– mgibsonbr
Thanks for the help @mgibsonbr. For example, if I have
X
which is GPL, GeroX'
derivative ofX
and all that is new inX'
will be under, for example, ASF, if at a given time inX'
I no longer have a subset ofX
, but only new fines,X'
still needs to be GPL or can it be now all ASF? I don’t know if I was clear here rs– Bruno César
If I understand correctly, you left from
x
(LPG), changed tox + x'0
, then tox + x'0 + x'1
,x + x'0 + x'1 + x'2
... Where eachx'n
is of your own making. Eventually you tookx
of the equation:x'0 + x'1 + x'2 + ... + x'n = x'
- 100% of the code is your own. Theoretically so you could license as you please (ideas are not copyrighted, only concrete expressions of them). What is difficult is to achieve this in practice - there will always be something left on its basis that came fromx
. Whilex'
for derivative ofx
, the whole must be LPG.– mgibsonbr
P.S. What is or is not a "derivative work" is something that the justice must decide. The FSF believes that all you have to do is link something in memory with your GPL program so that the whole is considered a derivative work, but not everyone agrees. This complexity discourages me from getting involved with the GPL, even if I agree with the ethical principles behind it. As useful as a GPL code is, I never incorporate it into my projects unless I’m willing to also use the GPL (which so far has been: never... : P)
– mgibsonbr