Hello. A friend and I decided it would be cool to co-lab on building a linux distribution. We've had some experience with slackware and arch linux. We've also done some programming in Java and are learning a bit of C++.

I've also done quite a bit of web development with PHP and MySQL, so I'm pretty comfortable with code (I know php is a LOT different than standard programming languages). We're also comfortable with the command line.

We're going to be keeping track of everything in a couple of good ol paper notebooks. We will be very detailed with the packages and stuff, changelogs, bug logs etc.

So to get to my point,

how should we go about planning building a linux distro? What components will we need to add to it and what steps should we take. The only thing we're really decided on is that we will be using Enlightenment DE, and Firefox so far. We're getting together all this weekend to start planning. So could someone explain to me or point me to a good site that covers how to plan building a linux distribution? And maybe some other good articles on building on Gentoo.

I think what you're looking for is Linux from Scratch._________________“And even in authoritarian countries, information networks are helping people discover new facts and making governments more accountable.”– Hillary Clinton, Jan. 21, 2010

Creating your own linux distribution. Judging from you posting history (and again, I'm not trying to be mean), you do not want to attempt this.
Just to get an idea of the effort required, Gentoo was started in 2002. A list of the developers can be found online
http://www.gentoo.org/proj/en/devrel/roll-call/userinfo.xmlhttp://www.gentoo.org/proj/en/devrel/roll-call/userinfo.xml?statusFilter=Retired
In case you don't want to click through, there are easily 100 developers. This means that thousands of man-years (and we're talking about very experienced people who become Gentoo developers) has gone into the development and maintenance of Gentoo, and Gentoo is one of the smaller distributions (looking at RedHat on Wikipedia, they employ a thousand people!).
Creating a linux distribution is not the kind of thing you can do in a week.

Could you possibly list your reasons for wanting to build a linux distribution? It's very likely that Gentoo (and probably many of the other fine linux distributions that already exist) will do exactly what you want, but you'll be able to accomplish your goal in a weekend instead of a decade .

Creating your own linux distribution. Judging from you posting history (and again, I'm not trying to be mean), you do not want to attempt this.
Just to get an idea of the effort required, Gentoo was started in 2002. A list of the developers can be found online
http://www.gentoo.org/proj/en/devrel/roll-call/userinfo.xmlhttp://www.gentoo.org/proj/en/devrel/roll-call/userinfo.xml?statusFilter=Retired
In case you don't want to click through, there are easily 100 developers. This means that thousands of man-years (and we're talking about very experienced people who become Gentoo developers) has gone into the development and maintenance of Gentoo, and Gentoo is one of the smaller distributions (looking at RedHat on Wikipedia, they employ a thousand people!).
Creating a linux distribution is not the kind of thing you can do in a week.

Could you possibly list your reasons for wanting to build a linux distribution? It's very likely that Gentoo (and probably many of the other fine linux distributions that already exist) will do exactly what you want, but you'll be able to accomplish your goal in a weekend instead of a decade .

Well basically what we want to do (think we will do) is to get a bare bones distribution, and package it with different packages like a DE, and various sorts of software. We do NOT expect this to be a weekend project. We are planning to take many many months to put something together.

Also, I probably got ahead of myself when I said we were going to make a distribution. It will be more like a learning experience for us to make a custom linux operating system. We won't necessarily even release it to the public, but it is more for a learning experience for us since we really enjoy messing around with computers.

It would be easier to pick a distro with a minimal default install (e.g. Gentoo), and then write up some scripts to automatically install and configure software to "just work" in the way you want your custom linux operating system to work.
Gentoo advertises as a "metadistribution" for a reason.

I can't imagine that maintaining software repositories could possibly be fun, so I'd recommend letting someone else feel the pain.

Well basically what we want to do (think we will do) is to get a bare bones distribution, and package it with different packages like a DE, and various sorts of software.

You're in luck: this is exactly what Gentoo is!

Essentially with a Gentoo install you start with a base system (this is the stage3 tarball you'll see in the handbook), which consists of only the bare bones of what you'll need for a functioning Linux system. You then get to install the software you want on top of that base. Gentoo distributes packages as ebuilds, which are pretty straight forward to start writing and have the advantage of teaching you a lot about how the various build systems employed by common open source packages work (knowledge you'll need if you're going to create your own distribution).

These forums are a pretty good place to get help, as is #gentoo on freenode (the IRC is often times a bit quicker).

nickos wrote:

We do NOT expect this to be a weekend project. We are planning to take many many months to put something together.

Also, I probably got ahead of myself when I said we were going to make a distribution. It will be more like a learning experience for us to make a custom linux operating system. We won't necessarily even release it to the public, but it is more for a learning experience for us since we really enjoy messing around with computers.

Even if you plan on eventually creating your own distribution, I would strongly recommend using Gentoo as a platform for learning Linux, as you'll want to have a firm grasp of the basics before attempting to roll your own. Creating your own Linux distribution will essentially be writing a script to automate the LFS build process, so if it looks scary you'll want to get some learning done first.

nomilieu wrote:

I can't imagine that maintaining software repositories could possibly be fun, so I'd recommend letting someone else feel the pain.

The Guy Who Sits Next To Me At Work maintains our Linux distribution (I work at a processor company and we maintain a port of CentOS -- FWIW that's not a distro that likes being ported ), and it involves much cursing and gaining of weight! I'd also vote that it's not something you want to do.

The Guy Who Sits Next To Me At Work maintains our Linux distribution (I work at a processor company and we maintain a port of CentOS -- FWIW that's not a distro that likes being ported ), and it involves much cursing and gaining of weight! I'd also vote that it's not something you want to do.

He could try tricking people into helping him (i.e. make it an "open source project").

The Guy Who Sits Next To Me At Work maintains our Linux distribution (I work at a processor company and we maintain a port of CentOS -- FWIW that's not a distro that likes being ported ), and it involves much cursing and gaining of weight! I'd also vote that it's not something you want to do.

He could try tricking people into helping him (i.e. make it an "open source project").

Haha, "tricking" xD, and yes, we do want it to be open source, so maybe some poor souls will help us down the road!

So back to my original question, how would I go about planning the project? Are there any good tutorials? Or should we just 'wing it' and be sure to keep good documentation?

Aside from that, I would recommend getting a sourceforge page setup and making sure to keep everything in some sort of revision control (I use git, but it doesn't really matter). IIRC, sourceforge provides a wiki and a bugzilla, both of which are important to use properly (and doubly-important if you ever plan on having anyone else use it). Stuff like forums, a mailing list, and an IRC channel will be important if you ever make it to the point of having users, but that will take quite a while.

The Guy Who Sits Next To Me At Work maintains our Linux distribution (I work at a processor company and we maintain a port of CentOS -- FWIW that's not a distro that likes being ported ), and it involves much cursing and gaining of weight! I'd also vote that it's not something you want to do.

He could try tricking people into helping him (i.e. make it an "open source project").

The trouble is that there aren't that many of these chips floating around (think in the thousands), and that we don't have glibc/gcc/linux/binutils properly upstreamed yet, so nobody would want to accept our port (as it's quite useless without any of that). I keep telling myself that I'll do a Gentoo port, but it keeps failing (so far I have gcc, linux, and binutils building with our patches applied, but the rebuilt ar explodes when trying to build glibc -- it's probably some trouble from attempting to bootstrap Gentoo into a running RedHat install).