fuzzy questions about distros, projects, repositories, and GPL

February 25th, 2012 - 05:34 am ET by crankypuss | Report spam
I have pretty much concluded, after looking at various Linux distros
from Ubuntu to Puppy and in between, that I need to build a new flavor
of thingummy. The reasons for that are many and varied and this post
isn't really the place for getting into them.

For lack of a better term, I'll call this thingummy a "distro", not
because I need to distribute it and become master of the universe, but
because there is the potential that some few others might find that it
suits their needs too, and it's my tendency to plan for the most general
case whether it ever comes to pass or not... mostly because I find it
annoying to go back and do what should have been done in the first place.

In attempting to read the GPL3, my eyes glaze over as the legalese has
its novocain effect on my brain. What I get is that people can use,
redistribute, and modify the code however they want as long as they
don't make it proprietary. So far, so good. But the bits about making
source code available seem kind of bleary-eyed... if I include every
line of source code for every package in the distribution media (iso
archive) it'll be huge and less convenient to download. If I make it
available on a server it appears that such implies a promise to keep it
available more or less forever, and given the choice between paying rent
on a website with unlimited bandwidth for the rest of my life and not
distributing the code, byebye distribution. So how do people usually
deal with this? And is it legit to assume that if a project is released
under GPL that all of its components are also GPL?

I hear about this or that Linux project, but google has so many
references to specific Linux projects that my google-fu is inadequate to
finding information about how one starts a given Linux project. I see
references to CVS and repositories but have trouble finding out how to
set up such a thing for a given project. Is there some specific place
that all projects live, or what's the deal?

The idea of building a distro from scratch is kind of overwhelming...
forget about me auditing all the source for trojans, even the time it
would take to compile them all seems prohibitive when you look at the
amount of stuff involved. I can probably deal with collecting the
necessary binaries, modifying the few that might actually need
modification, and build the code to hook it together. But is that
allowed under the GPL? How deep must I go to build this thing so that
other people can use it?

And how does one decide what level to begin at? Sure, it'll need a
kernel, but the generic kernel will probably be just fine... it'll need
the core commands but those are probably just fine... building it up
from basic components is one approach, but the various existing distros
have already done that... then gone on to add bells and whistles and
flushing toilets and kitchen sinks so they'd need to be stripped down to
the basics.

Comments from those who have done such a thing before would be very much
appreciated.
email Follow the discussionReplies 159 repliesReplies Make a reply

Replies

#1 J.O. Aho
February 25th, 2012 - 06:16 am ET | Report spam
crankypuss wrote:

In attempting to read the GPL3, my eyes glaze over as the legalese has its
novocain effect on my brain. What I get is that people can use, redistribute,
and modify the code however they want as long as they don't make it
proprietary. So far, so good. But the bits about making source code available
seem kind of bleary-eyed... if I include every line of source code for every
package in the distribution media (iso archive) it'll be huge and less
convenient to download.



You don't need to provide the source code on the same media, just look like
RedHat is providing their distributions, you have the install media which
lacks the source code, but then there is media with the source code for those
who want to access the source code.

If you only make minor changes, you can provide the patch instead of the whole
source code. Keep in mind to tell which version of the original source the
patch is used again )this makes it easier for someone else to modify your code).

So how do
people usually deal with this? And is it legit to assume that if a project is
released under GPL that all of its components are also GPL?



There are a lot of free storages around, just look at sourgeforge or google
for a starter.


I hear about this or that Linux project, but google has so many references to
specific Linux projects that my google-fu is inadequate to finding information
about how one starts a given Linux project.



There is a lot of information out there, if you know what to look for.
LSF is one way to go, but you will have loads of work to keep things up to
date by yourself, it's far easier to just fork a distribution, as then you
have someone who keeps track of bugs and security issues and most likely fixes
those too, all you need to do is to see to that your "distribution" does
provide it's own repository for the packages you have modified or providing
which isn't in the original distributions repository, use the original
repository for all the other packages.

I see references to CVS and
repositories but have trouble finding out how to set up such a thing for a
given project. Is there some specific place that all projects live, or what's
the deal?



We come back to those famous man pages, did you try "man cvs" or "info cvs"?
those had been pushing you in the right direction.
You can get a free cvs/svn/git service from many of the project hosting sites
for free.

The idea of building a distro from scratch is kind of overwhelming... forget
about me auditing all the source for trojans, even the time it would take to
compile them all seems



Compile time ain't too bad, patching security and bug fixes will take your
time and of course to keep track of new such issues for all your packages, a
distro hardly is a one mans work, thats why most new distros are just forks of
an older one with some modifications, for example Ubuntu is just Debian with
some changes (okey today there are many changes).

If you want to make something more to your specific needs, then for something
like SourceMage or Gentoo, as those allows you to build things with just what
you need, then you provide a repository for your "users" which contains the
already built packages, and the distro is setup so that it will in first hadn
use your binary files.



//Aho

Similar topics