Wednesday, December 17, 2008

GPLv3 - Is it right for your family?

The GPLv3 came out a while ago, with a changed outlook from v2, which upset many people, with some choosing to relabel their software from being GPLv2 or higher to GPLv2 only.

While discussing some changes with someone the other day, I looked over this section again:
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.

From what I gather, the intent of this paragraph was to define how the GPL affects hardware manufactures that embed GPL software on their products. They wanted to allow companies to ship various software together, as long as the user of the product doesn't have any legal restrictions applied to them. For example: By opening this package you forgo your rights to ever resell the contents within. Or: You agree to not use this product in order to reverse engineer it. Or the real clincher: By opening the packaging or using this product you agree to not attempt to modify it.

Basically this is done to explicitly state the GPLs new intent:
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

Now under the GPLv3, one is unable to sell hardware with GPLv3 on it to someone which somehow limits their legal rights they had prior to owning hardware.

Now what exactly defines legal rights? One's legal rights change from location to location. One has legal rights and restrictions based on the country they live in. They also have legal restrictions added on to those by the state they live in. One who owns a domain may also limit the rights of those who wish to stay within their domain. When one lives in a domain, and violates a law of that particular domain, they may be punished by the rules of that domain, as long as the punishment isn't in conflict with the rights and restrictions provided by the domain that particular domain is contained within.

Meaning, I can establish rights and regulations within my own household that are binding to members within it, as long as it isn't in conflict with the state I live in. The state can do the same as long as it doesn't violate the laws of the country it is in.

Although not normally thought of in that sense, my home does have legal rights, restrictions, and regulations that I apply to my household. I don't allow coloring on the walls. If one does so, they know that their crayons will be taken away, and they will lose allowance for the next two weeks or perhaps certain video game privileges, depending on the age of the perpetrator.

Now in the past, if I wanted one of my children to have a computer, I'd buy/build/whatever a computer, and install all the necessary software I think they need, as well as any other software that they desire that I don't deem as contraband.

However with the GPLv3, if I compile together components for a computer, as well as various software into a nice personal computer, if any of the software is GPLv3, I can't restrict any other previous legal rights to the user of this personal computer.

Buying children expensive gifts have always been a form of negotiation and a method to apply new restrictions on troublesome issues that have recently come up. For example, if my daughter recently decided she wanted earings, but her mother and I decided we don't want her to get her ears pierced right now, we'd try to negotiate the restriction. If we knew she also wanted a nice new laptop, we'd perhaps buy her the laptop, but make a deal with her, that if she uses this nice new pink Eee PC, she no longer asks her mother and I if she can have earings until she is 16. This way she can be content about having a new computer, and wont bring up her desire for earings for a few more years.

However, if we got her an Eee PC with Linux installed with several GPLv3 apps, as opposed to the Windows preinstalled Eee PC, we would not be allowed to under the terms of the GPLv3 negotiate this agreement with our daughter.

It seems because of the GPLv3, I can't give my children anything but Windows on the computers I buy for them, if I try to use them as a bargaining chip. Before you Mac lovers pounce on me, please recall that MacBooks today come with GCC, which is GPLv3.

Thanks to the GPLv3, it seems now Windows is the only Operating System that is right for your family. Remember also to be careful which open source applications you preload with, to make sure they aren't GPLv3.


Lester said...

Hello. By compilation, you should think of a CD-ROM disk with an assortment of utilities and software, with a variety of licenses ranging from shareware, to public domain, and so on. In the pre-internet era these were quite popular and it might amount to what a modern would be if delivered on removable media.

Just thought I'd point this out because it seems everything in your post went a little nuts, having missed that. I wasn't sure if that was your intention.

insane coder said...

By compilation, I actually think of linking GPL'd code with non GPL'd code. Which is a different topic entirely.

Anders said...

Mac OS X comes with GCC 4.2.1, which is GPL2. And it's not installed by default.

Emanuel said...

So you can bundle GPLv3 licensed software with something on the condition that it is not used as a condition for something else. Isn't that in contradiction with itself?

Christopher said...

As a law student, nerd, and linux user I can say that GPL makes things better on so many levels -- but that's not the reason for my comment.

What I'd really like to know is if you still have a copy of zsnes 1.42n laying around.

Thanks, dude. Keep fighting the good (thankless) fight.

insane coder said...

Christopher: I do indeed have ZSNES v1.42N lying around.

I'll upload it to my new website once it's set up.