Difference between revisions of "Funtoo Linux"
(→Articles) |
|||
| Line 1: | Line 1: | ||
| − | [[User:Drobbins|Daniel Robbins]] has a lot of technical goals for Funtoo, but the ''primary'' goal of Funtoo as a free software project is to create an environment where he can happily work on Gentoo-related and non-Gentoo-related technical efforts in a way that's compatible with his personal life and have it be fun, too. In that sense, the name <tt>Funtoo</tt> is sort of a play on words on <tt>Gentoo</tt>, where Funtoo is sort of his own personal Gentoo that's also fun. | + | [[User:Drobbins|Daniel Robbins]] has a lot of technical goals for Funtoo, but the ''primary'' goal of Funtoo as a free software project is to create an environment where he can happily work on Gentoo-related and non-Gentoo-related technical efforts in a way that's compatible with his personal life and have it be fun, too. In that sense, the name <tt>Funtoo</tt> is sort of a play on words on <tt>Gentoo</tt>, where Funtoo is sort of his own personal Gentoo that's also fun. For more information on the vision of Funtoo, see: [[vision]] |
= Getting Started = | = Getting Started = | ||
Revision as of 04:50, 5 November 2010
Daniel Robbins has a lot of technical goals for Funtoo, but the primary goal of Funtoo as a free software project is to create an environment where he can happily work on Gentoo-related and non-Gentoo-related technical efforts in a way that's compatible with his personal life and have it be fun, too. In that sense, the name Funtoo is sort of a play on words on Gentoo, where Funtoo is sort of his own personal Gentoo that's also fun. For more information on the vision of Funtoo, see: vision
Contents |
Getting Started
Start by installing Funtoo. If you have questions, someone has probably asked them already in our Funtoo Linux FAQ. Otherwise, there are other community resources available.
Differences between Funtoo Linux and Gentoo Linux
From an installation perspective, the main difference between Funtoo Linux and Gentoo Linux is that Funtoo Linux has a different Portage tree. We store our Portage tree in a git repository. Our Portage tree does track the Gentoo repository (we import Gentoo changes almost every day,) but our tree does contain some significant changes from Gentoo's tree.
Here is a basic overview of how Funtoo Linux (stable and unstable) differ from Gentoo Linux:
| stable | unstable | |||
|---|---|---|---|---|
| Category | Gentoo Linux | Funtoo Linux | Gentoo Linux | Funtoo Linux |
| portage | 2.1.8.3 | 2.2 | 2.2 | 2.2 |
| portage tree | rsync-based | git-based | rsync-based | git-based |
| glibc | 2.10.1 | 2.10.1 | 2.11.2 | 2.10.1 |
| gcc | 4.3.4 | 4.4.3 | 4.4.4-r1 | 4.4.3 |
| udev | 149 | 135 | 160 | 146 |
| init scripts | baselayout-1 | openrc | openrc | openrc |
| perl | 5.8.8 | 5.10.1 | 5.12.1 | 5.10.1 |
| ruby | 1.8.7 | 1.8.7 | 1.9.2_rc2 | 1.8.7 |
| core openresolv | no | yes | no | yes |
| custom pkgs | N/A | udev, grub, coreboot, openrc and more | N/A | udev, grub, coreboot, openrc and more |
| merged overlays | None | None | None | None |
| upstream tree | None | gentoo stable | None | gentoo unstable |
What's Been Done So Far
My technical goals for Funtoo Linux are to focus on improving the core Gentoo system, ie. what you'd find inside a stage3. I also have been working to improve general Gentoo technologies, such as migrating Portage to git, and ensuring that Funtoo is easily buildable in an automated way, by creating Metro. These changes are intended to empower me to improve Funtoo more easily, and are shared with you so that you can benefit from them as well.
These improvements are detailed below:
Git-based Portage Tree
One of the first things I did was migrate Gentoo's development Portage tree from cvs to git, and migrate Gentoo's user Portage tree from rsync to git. This was done to help me work more effectively, since git is simply a much more powerful and efficient tool than cvs.
Zack Medico, Portage/emerge maintainer, has enhanced the 2.2 version of Portage so that it is compatible with git. This allows users to pull a Portage tree from a git repository. This can often be more efficient than rsync, although the git repository does take up more space on disk. But I did not switch away from rsync because it wasn't fast enough.
More important for me is the fact that users can pull from the same repositories that I use for Funtoo development. This simplifies Funtoo infrastructure considerably, keeping things more fun for me :)
Git also provides integrity-checking functionality that is superior to that which currently exists in Portage, which will allow improved data integrity checks in future versions of Portage. This work is not yet finished, or even really started, but by using git we are starting to move in this direction. This work will continue as I have time.
Forked Tree
Funtoo has its own Portage tree that is 99% identical to Gentoo's Portage tree. I merge changes from Gentoo into our tree on a near-daily basis. Our tree has a few significant differences from the Gentoo Portage tree, which are covered in more detail in our Quick Install Guide
I created my own Portage tree for a multitude of reasons. The main reason for creating the tree was so I could get improvements into my Portage tree immediately, changes which Gentoo developers may or may not be interested in adding to the official Gentoo tree. I don't want to wait around or try to convince someone to add a fix I need.
Metro and Daily Builds
Metro is a tool I created to build Gentoo and Funtoo releases in an automated way. For around a year, I have been using Gentoo's catalyst, and now Metro to build daily releases of Gentoo and Funtoo. These stages are available on the Funtoo homepage.
Metro is a big improvement over Gentoo's automated build tool, catalyst, which I originally wrote but has not aged well over the years. Metro is still missing some functionality that exists in catalyst, most notably LiveCD support (I haven't created a Funtoo LiveCD yet, which is why :) but in nearly all other respects is much more capable than catalyst. I will continue to maintain and improve Metro as I have time. The daily builds serve as a good ongoing test for Metro as well as the integrity of the Funtoo Portage tree.
Forkable - Empowering Developers
Combine the transition to git with Metro, and Funtoo is now actually quite easy to fork, unlike Gentoo. If you wanted to create your own derivative of Funtoo or Gentoo, you could simply clone my git repository and then set up Metro to build releases of this variant. With some basic familiarity with git, this can all be accomplished by an single individual in a single day.
Why is this important? If you love Gentoo like I do, but want to work on Gentoo independently, so that you have your own personal "fun, too" project where you are Chief Architect, you have all the tools you need to make this happen. There is no longer a need to become an official Gentoo developer in order to grow in your Gentoo knowledge.
Core System Changes
Funtoo has several core system changes, and I plan to continue to focus on improving the core system quite a bit. Funtoo has its own sys-fs/udev package, its own sys-apps/baselayout, its own sys-apps/openrc (which is used by default), and a few other improvements here and there.
As of mid-July 2009, I'm planning to integrate OpenResolv, OpenRC 0.5.x and dhcpcd-5.x into the core system, as well as migrate to a simplified and more capable "direct-drive" network configuration system. These changes, as well as their rationale, are detailed in this funtoo-dev mailing list thread.
Articles
On the Funtoo homepage, you'll notice a number of technical articles and HOWTOs; I am gradually revising and updating my original IBM developerWorks Linux articles and adding them to the site as I have time.
Every now and then, I'm adding interesting new content, such as the intriguing Slowloris DOS Mitigation Guide, which details various mitigations for the Slowloris DOS that affects the Apache Web server. This article was co-authored with Ryan Vick, a security researcher who is a friend of mine.
This new documentation effort has also included a migration from Gentoo's Guide XML format to ReStructuredText, part of Python's docutils, which I am now using for all my documentation.
What's in the Works
In addition to various ongoing Funtoo Linux Projects, there are other efforts.
Funtoo Filesystem Hierarchy
The Funtoo Filesystem Hierarchy seeks to document the specific nuances of the Funtoo fileystem hierarchy beyond what is in the Filesystem Hierarchy Standard already.