What does this part of GPL3 mean in simpler or more readable terms?

If I decide to enhance a GPL3 Program in which some snippets of the codes I could add are generic (may it be on a separate file or as part of a GPL-licensed file) and could be applied to other future softwares as well, would I be free to have it (the generic code) licensed in any way I want? I'm still the original author of it after all. Or would this need that I create a "landmark" software first that contains it just to show that it is originally a part of an "aggregate"? Pardon if I didn't get things right and if what I'm asking is not even applicable. Thanks.

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

Reference: http://www.gnu.org/copyleft/gpl.html


An aggregate is a collection of programs that are not collectively bound by the GPL. In other words, they are not a collective work. A collective work is bound by the GPL because the individual programs or modules form a collective whole. An aggregate is not bound by the GPL because

  1. The individual programs, if they communicate with each other, do so at "arms-length" (through mechanisms such as pipes), rather than through Application Programming Interfaces (especially early-bound ones).

  2. The individual programs are capable of operating independently; that is, they are still fully functional if you remove the other programs from the aggregate.

An example of an aggregate would be a distribution disk containing several programs, each having its own software license. Linux distributions (containing several programs and utilities, in addition to the operating system kernel) are considered aggregates.

In other words, having one GPL'd program on a disk or other storage medium with other unrelated programs does not cause those other unrelated programs to be bound by the GPL. Simply copying a bunch of programs to a disk does not create what the GPL calls a "collective work."

  • Nice Answer! So a Python application on an embedded Linux target is not required to be licensed under GPL, because it's independent of GPL-Linux (runs on Windows too). What's happening, when the Script is using specific Linux ressources, like the SMBus2 module, which interacts with the Kernel I2C API? Can you explain this case? – Franz Forstmayr Jun 20 '18 at 7:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.