Tiny Core Linux

General TC => General TC Talk => Topic started by: SvOlli on August 25, 2010, 10:08:44 AM

Title: Discussion on GPL v2 as used by TCL
Post by: SvOlli on August 25, 2010, 10:08:44 AM
Hello!

Some weeks ago, I set up a small web page with some additions to TinyCoreLinux. I discovered that GRUB4DOS is a more suitable bootloader, and wanted to add this to some other work I did a while ago, that added NTFS support to TCL during boot time, allowing to install TCL "inside" a Windows System without the need for repartitioning. This lead to a remaster that was automatically generated, based on the latest release and release candidate, which I announced on the boards here, together with the script that created it.

It got removed almost instantly. After some messages back and forth with ^thehatsrule^ it was explained to me, that it got removed because I was violating the GPL v2 for not releasing the source code. My understanding at this time was that pointing out that my remaster was just a simple automated rebuild of TCL with a link back to the original was enough. He explained to me, that in their understanding of the GPL this is not enough, not even pointing out with a direct link to the sources would be enough, but that I have to set up an own mirror of the sources of TCL base.

I did that, even though I am convinced that pointing out to the sources is enough, accoring to chapter 3 c) of the GPL v2:
Quote
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
[...]
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
I could have even gone for 3 b)
Quote
Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange

But after creating the mirror, I was also requested to put up the source code of all the extensions that are included in that image. And that's where the fun stops. The point is reached where I'm requested to do something that TCL does not: TCL does not host the source code of all the extensions that are based on GPL'ed work. I maintain the Qt port to TCL which the TCL team distributes in binary form, and TCL does not offer a mirror of the source code used for compiling this package.

This looks to me like applying double standards. I want to work with you guys, showing my work as a proof of concept for an open discussion, to see if there's anything in it that might be of value for you. But this way it feels like you're working against me. Sorry to say that, but it really does feel that way... :(
Title: Re: Discussion on GPL v2 as used by TCL
Post by: curaga on August 25, 2010, 10:17:24 AM
We do host extension source code, for qt it would be:
http://ftp.nluug.nl/pub/metalab/distributions/tinycorelinux/3.x/tcz/src/qt-4.x/

(3.x/tcz/src on any mirror)


According to my understanding, the 3 c) would imply redistributing without modifications.

I won't comment on the other parts right now.
Title: Re: Discussion on GPL v2 as used by TCL
Post by: SvOlli on August 25, 2010, 10:29:19 AM
We do host extension source code, for qt it would be:
http://ftp.nluug.nl/pub/metalab/distributions/tinycorelinux/3.x/tcz/src/qt-4.x/

(3.x/tcz/src on any mirror)

I'm sorry. I stand corrected, but even searching the ibiblio.org mirror with google did not bring that up:
http://www.google.com/search?q=site%3Aibiblio.org+qt-everywhere-opensource-src-4.6.3&ie=utf-8&oe=utf-8
Title: Re: Discussion on GPL v2 as used by TCL
Post by: curaga on August 25, 2010, 10:42:58 AM
The link to the extension sources is at the bottom of the extensions web page. I do see it could be more prominent, will add to the top as well.
Title: Re: Discussion on GPL v2 as used by TCL
Post by: roberts on August 25, 2010, 10:51:40 AM
We are not against remasters of Core but trying to comply with the GPL is not easy. I am posting a link to this topic that I was personally, being co-developer of DSL,  involved with at the time.

http://www.linux.com/archive/feature/55285

When I started Tiny Core, I wanted to be sure that GPL sources would be easily available and not have to worry about handling media for such purposes.
Title: Re: Discussion on GPL v2 as used by TCL
Post by: SvOlli on August 25, 2010, 12:36:58 PM
Robert,

thanks for the info. I know your background coming from DSL and have read your reply to John Andrew with great interest. Though I'm reading a lot on open source and Linux on the web through a couple of newsfeeds, this topic fully slipped though.

I've updated my mirror scripts to also cover all the extensions used for building the remaster. Please take a look at [^thehatsrule^: now posted under the remaster section] . If it's ok with you now, I'll activate the download links to the ISO and write a new topic for the remastered-board. But please update the rules for posting in that section, also noting that the source of the extensions used are required to get mirrored as well. And I think it's also a good idea to explain why this is necessary, e.g. by linking to the article you mentioned.

And while typing this I also understand, why you remove links to tczs that are mentioned on the boards... for exactly the same reason: you could be held responsible for providing source code to that tcz in question without any chance to get your hands on the source code used. Pointing that out to any newcomer here (maybe by referring to a static post called "Why we can't allow any binaries or links to binary on the boards") would take a lot of the frustration that builds up by reading "it's against the board rules".
Title: Re: Discussion on GPL v2 as used by TCL
Post by: curaga on August 26, 2010, 11:12:38 AM
It looks ok to me, except for the source for kmaps, which is at:

http://ftp.nluug.nl/pub/metalab/distributions/tinycorelinux/2.x/tcz/src/kbd-1.15.1.tar.bz2
http://ftp.nluug.nl/pub/metalab/distributions/tinycorelinux/2.x/tcz/src/kbd-1.15.1-backspace-1.patch
Title: Re: Discussion on GPL v2 as used by TCL
Post by: SvOlli on August 26, 2010, 11:38:39 AM
Ah, I was assuming the base/kbd-1.14.1-patched.tgz was also used for the extension, since I couldn't find anything in the 3.x mirrors.

Thanks for your help!
Title: Re: Discussion on GPL v2 as used by TCL
Post by: curaga on August 26, 2010, 11:59:04 AM
It hasn't had a version update since the 2.x days, so no source in the 3.x dir because of that.
Title: Re: Discussion on GPL v2 as used by TCL
Post by: Jason W on August 26, 2010, 04:52:25 PM
Also, with the extension source directory, there are some extensions that were built for 2.x that are fine for 3.x and simply copied there, so their source resides in the 2.x source area until an update to the extension is sent in.

And in reality, it is not just GPL stuff that gets it's source hosted here, as a practice all sources regardless of license are hosted here to enable easy rebuilding of the extension without the need to rely on continued upstream availability.. 

But one exception is Chromium, which is BSD license and an almost 800MB source tarball.

Title: Re: Discussion on GPL v2 as used by TCL
Post by: Pats on August 27, 2010, 09:19:44 AM
Quote from curaga:
<It hasn't had a version update since the 2.x days, so no source in the 3.x dir because of that.>

Quote from Jason W:
<Also, with the extension source directory, there are some extensions that were built for 2.x that are fine for 3.x and simply copied there, so their source resides in the 2.x source area until an update to the extension is sent in.>

I assume from above 2 points that, I need not worry abt distributing sources of version of TC2.5 , FLTK, GCC etc with future releases of my commercial software, because the surces of all these three wont change in future, is not it ?
:)
~ Pats
Title: Re: Discussion on GPL v2 as used by TCL
Post by: Arslan S. on August 27, 2010, 09:33:05 AM
I read somewhere chromium source can be stripped down, most of the code is for tests
http://packages.ubuntu.com/maverick/chromium-browser (http://packages.ubuntu.com/maverick/chromium-browser) 92MB
Title: Re: Discussion on GPL v2 as used by TCL
Post by: Jason W on August 27, 2010, 09:38:25 AM
Pats -
If you are distributing a binary of a GPL app you have to distribute the source.  We don't have to copy the source from the 2.x source directory to the 3.x one since we are distributing the source on the same server.

Arslan -
92mb is much better than 800MB.  In that case it would be reasonable to host it.
Title: Re: Discussion on GPL v2 as used by TCL
Post by: SvOlli on August 27, 2010, 10:07:37 AM
I assume from above 2 points that, I need not worry abt distributing sources of version of TC2.5 , FLTK, GCC etc with future releases of my commercial software, because the surces of all these three wont change in future, is not it ?
Nope, to comply with the GPL v2, you have to guarantee that you can distribute the sources on request for all binaries you provide. If the Tiny Core Linux Team decides to drop their work and remove all sources, you might not get access to all the source code used to build TCL, and therefore you can't guarantee that, if you don't host them yourself.

To comply with the GPL you'll even have to provide the whole architecture that anyone can reproduce your work on the same terms you did. If you've written your own language with a compiler, you must distribute this compiler as well. If you've compiled your software with a commercial compiler, you don't have to supply that compiler, but the other one must be able to buy a license of that compiler as well.
Title: Re: Discussion on GPL v2 as used by TCL
Post by: Pats on August 27, 2010, 10:23:31 AM
Quote from Jason:
<Pats -
If you are distributing a binary of a GPL app you have to distribute the source.  We don't have to copy the source from the 2.x source directory to the 3.x one since we are distributing the source on the same server>

I am getting more & more confused, Suppose I have distributed my commercial app to 10 clients, now if I make some changes to this app, as per my clients future needs, do you mean, I should go on distrubuting the sources of TC25,GCC,FLTK etc again & again, even if the same old sources still resides on the clients pc and these are not changed in your repo also ? ( And yes, I distribute only binary of my commercial app, for your info...)
Very funny !

Quote from SvOlli:
<Nope to comply with the GPL v2......>
How can I distribute the sources of my commercial app ? Suppose some mallacious coder make some un-desired changes in my app on my clients PC.. ! ( Rare chances but still possible..), Then who will be responsible for the damages to my clients customers ( for eq: the billing part ) and my reputation ?
Still very funny !

~Pats
Title: Re: Discussion on GPL v2 as used by TCL
Post by: tinypoodle on August 27, 2010, 11:41:19 AM
Pats:

A Practical Guide to GPL Compliance: http://www.softwarefreedom.org/resources/2008/compliance-guide.html (http://www.softwarefreedom.org/resources/2008/compliance-guide.html)

HTH
Title: Re: Discussion on GPL v2 as used by TCL
Post by: aus9 on August 27, 2010, 04:38:01 PM
hi

I have no skills to help manage a small distro,

but as tinypoddle provided an enjoyable link.....I would like to make a few comments.

1) Mepis got into trouble, in the past as here is overview
http://www.linux-watch.com/news/NS9113053102.html

2) In the compliance guide section 3.4 they request distros not have a "build guru"

IMHO.....this seems to be arrogant........If you are building a re-distribution of GPL kernel etc, you can not demand everyone learn your build way. The number of helpers you have are likely to drop off. IMHO most helpers will say....something like....I will help with the kernel or I will help with the windowmanager etc.

3) In the compliance guide....4.1.2  Option (b): The Offer
It mentions the possible cost of a cd.

In the first link of mine the Mepis founder provided dvds at a certain cost.

One wonders if that cost is excessive?

But if you have paid someone to make some dvds.......as a production run of a small number.....it seems to me to be reasonable that you pay a higher cost per unit than someone who orders a few million copies.

It therefore seems unreasonable....to me....to require (that entity) to provide you with all commercial-in-confidence contracts to prove that cost quote is reasonable.

4) BTW so much for the myth spead by Linux users that LInux was "created" on the net.....when GPL compliance will not recognise net source but require media source compliance. (I am guilty of spreading this rumour to my MS friends)




regards
Title: Re: Discussion on GPL v2 as used by TCL
Post by: ixbrian on August 27, 2010, 07:09:37 PM
I guess I'm not understanding what the big deal with this is.   The GPL gives you 100% freedom to run the software for any purpose without restriction.  

However, if you would like to distribute GPL software, then you must follow the simple rules that you have agreed to by distributing the software.   One of these rules being that if you are distributing GPL software that you have the source code available to distribute as well.  It doesn't work or make sense to simply allow people distributing GPL code to tell other people they need to get the source from an upstream project (which could tell you they don't have the source code either and to get it from their upstream project, and so on; it just wouldn't work).  

In my opinion, the Tiny Core team has done an excellent job at making all of the source code and build scripts easily available.   If you would like to remaster and redistribute Tiny Core, simply go to the mirror and download the source code for Tiny Core Base (which is conveniently all under a single directory) and then download the source code for each extension (which is easy as well since each extension has a source directory).   If you have rebuilt any packages, then simply save that source code you compiled.  Tar up all this source code and put it on an FTP site.   It really isn't that big of a deal.  

In my opinion, the key thing to keep in mind is that the rules of the GPL are there to ensure that each user of the software has freedom.  This freedom is what has enabled Linux / open source software to do so well in my opinion.  

It's like the requirement that build scripts be included with the source code.   At first glance, this might seem like an unreasonable hassle.   But what kind of freedom would the user have if the GPL software required a complex build process / script, and the person distributing the software to you refused to give you the build script.  Now you would no longer have the freedom to take the code and modify it, and if you can't compile it from source (because you don't have the build script) it really defeats all of the benefits of open source software.   This is one of the key principles of the GPL.  

So instead of looking at the GPL distribution requirements as a big hassle, look on the other side.  Look at how the GPL distribution requirements help you have the freedom to easily take Tiny Core or other GPL projects and modify them to suit your needs.  There is a good reason why the GPL is the #1 open source license in use today.