Difference between revisions of "FAQ/Old"

From Funtoo
< FAQ
Jump to navigation Jump to search
(→‎Does Funtoo use an overlay?: mention http://ports.funtoo.org/packages.xml)
(36 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Common Misconceptions, Rumors, etc. ==
== Top Questions ==


=== Does Funtoo Linux use a Red Hat kernel? ===
=== Why use a Source-Based Linux Distribution like Funtoo Linux? ===


Funtoo Linux users are free to choose their own kernel, and we offer additional kernels from other Linux distributions such as Debian, Red Hat Enterprise Linux and others. These are documented on the [[Funtoo Linux Kernels]] page.
Using a source-based Linux distribution like Funtoo Linux could be likened to driving an exotic sports car. It's an experience that is appreciated by professionals and technology enthusiasts because it simply offers a more direct, engaging experience with the underlying technology. You can push the technology further. You have more control. It is more satisfying.
 
If you aren't looking for something "special", there are a number of binary-only Linux distributions to choose from. They will get you from point A to point B. You won't have as much fun or be as connected to what's going on, but maybe that's not what you're looking for.
 
But if you ''do'' appreciate a deeper connection to technology, and pushing technology to its limits, Funtoo Linux may be a life-changing experience for you.
 
=== Do you support systemd? ===
 
Part of the distinctiveness of Funtoo Linux is its dependency-based OpenRC init system, so changing this would make it something other than Funtoo Linux. So we do '''not''' support systemd as part of Funtoo Linux.
 
Thanks to the work of Dantrell B., we do, however, fully support running GNOME 3.12+ without depending on systemd.
 
=== What's with the Question Mark in the Logo? ===
 
We're currently looking for a new logo. I change it periodically and include a question mark to encourage people to submit ideas. You can post ideas to the [http://forums.funtoo.org forums].
 
=== Do you use GitHub? ===
 
Funtoo Linux has core git repositories at git.funtoo.org, which are automatically synced to GitHub, so all our public repositories are available on GitHub. But we don't use GitHub for pull requests, documentation, or tracking bugs. We have our own infrastructure for that. More information is available on the [[How to Dev|How to 'Dev' page]].


=== Does Funtoo use an overlay? ===
=== Does Funtoo use an overlay? ===


An overlay is a Portage tree that is added "on top of" an existing Portage tree. Funtoo Linux allows you to use overlays, and we use overlays for development, but we deliver a single Funtoo Portage tree via git. This tree is generated automatically from the Gentoo Portage tree and a number of other overlays, and merged into a single tree. This is the tree that you get when you run <tt>emerge --sync</tt>.  
An overlay is a Portage tree that is added "on top of" an existing Portage tree. Funtoo Linux allows you to use overlays, and we use overlays for development, but we deliver a single Funtoo Portage tree via git. This tree is generated automatically from the Gentoo Portage tree and a number of other overlays, and merged into a single tree. This is the tree that you get when you run <tt>emerge --sync</tt>. More information is available on the [[How to Dev|How to 'Dev' page]].
 
=== How do I see what overlay a particular ebuild comes from? ===
 
http://ports.funtoo.org/packages.xml lists all ebuilds that come from a non-Gentoo overlay, in XML format. You can search this file for the ebuild you are interested in. If you don't find it, then it came from Gentoo.


=== Can I Turn my Gentoo system into Funtoo Linux by using <tt>funtoo-overlay</tt>? ===
=== Does Funtoo Linux use a Red Hat or Debian kernel? ===


We do have a primary development repository called <tt>funtoo-overlay</tt>, and its name is somewhat of a misnomer. You can't simply use it as an overlay on top of a Gentoo Portage tree to create a Funtoo Linux system.
Funtoo Linux users are free to choose their own kernel, and we offer additional kernels from other Linux distributions such as Debian, Red Hat Enterprise Linux and others. These are documented on the [[Funtoo Linux Kernels]] page.


== Using Funtoo Linux, Portage and Git ==
== Using Funtoo Linux, Portage and Git ==
Line 29: Line 51:
A feature introduced by Funtoo Linux, and now integrated upstream into Gentoo's Portage, are mini-Manifests. Because we use git for our Portage tree, which uses cryptographic hashes internally, we don't need Manifests to include hashes for all files ''in'' Portage, just files that need to be downloaded from mirrors. This is what mini-Manifests are -- Manifest files that have gone on a diet.
A feature introduced by Funtoo Linux, and now integrated upstream into Gentoo's Portage, are mini-Manifests. Because we use git for our Portage tree, which uses cryptographic hashes internally, we don't need Manifests to include hashes for all files ''in'' Portage, just files that need to be downloaded from mirrors. This is what mini-Manifests are -- Manifest files that have gone on a diet.


=== How do I update my git-based Portage tree? ===
=== How do I get my initial Portage tree, or update my Portage tree? ===


If you already have an existing git-based Portage tree, you can update it by typing:
This is done by typing:


<console>
<console>
###i## emerge --sync
###i## emerge --sync
</console>
</console>
Emerge will use the <tt>git pull</tt> command to update your tree for you, or will use <tt>git clone</tt> if one doesn't exist.


=== I set up my initial git-based Portage tree, but <tt>/usr/portage</tt> seems to be empty. ===
=== I set up my initial git-based Portage tree, but <tt>/usr/portage</tt> seems to be empty. ===
Line 47: Line 71:
Funtoo Linux's portage tree snapshot ships with a mostly empty branch active by default to reduce the size of the resultant snapshot tarball.
Funtoo Linux's portage tree snapshot ships with a mostly empty branch active by default to reduce the size of the resultant snapshot tarball.


=== What is different with Funtoo's UTF-8 support? ===
=== What is the status of Funtoo's UTF-8 support? ===


Funtoo Linux has UTF-8 enabled by default, even for the <tt>root</tt> user. This allows UTF-8 files to be edited without issue, <tt>root</tt> GNU screen sessions to display UTF-8 character sets properly, etc. The classic sort order of <tt>ls -a</tt> has been preserved by setting <tt>LC_COLLATE</tt> to <tt>POSIX</tt>. All other locale settings inherit the system default defined in the <tt>LANG</tt> variable, which is set to <tt>en_US.UTF-8</tt>.
Funtoo Linux has UTF-8 enabled by default, even for the <tt>root</tt> user. This allows UTF-8 files to be edited without issue, <tt>root</tt> GNU screen sessions to display UTF-8 character sets properly, etc. The classic sort order of <tt>ls -a</tt> has been preserved by setting <tt>LC_COLLATE</tt> to <tt>POSIX</tt>. All other locale settings inherit the system default defined in the <tt>LANG</tt> variable, which is set to <tt>en_US.UTF-8</tt>.
Line 67: Line 91:
Funtoo Linux tracks Gentoo's Ruby, but we do have one change for ruby-1.9 and greater - the binary name is changed with /usr/bin/ruby1.9 instead of Gentoo's /usr/bin/ruby19. This makes the versioning consistent with Python binaries and MacOS X. This means that for ruby-1.9 and greater. While the path to the binary has changed, all Portage variables are the same as Gentoo, so you should use &quot;ruby19&quot; for the <tt>RUBY_TARGETS</tt> setting in <tt>/etc/make.conf</tt>.
Funtoo Linux tracks Gentoo's Ruby, but we do have one change for ruby-1.9 and greater - the binary name is changed with /usr/bin/ruby1.9 instead of Gentoo's /usr/bin/ruby19. This makes the versioning consistent with Python binaries and MacOS X. This means that for ruby-1.9 and greater. While the path to the binary has changed, all Portage variables are the same as Gentoo, so you should use &quot;ruby19&quot; for the <tt>RUBY_TARGETS</tt> setting in <tt>/etc/make.conf</tt>.


=== Ruby 1.9 is masked. How do I use it? ===
=== Does Funtoo Linux use an older udev? ===
 
Add the following to <tt>/etc/portage/make.conf</tt>:
<pre>
RUBY_TARGETS="ruby19"
</pre>
 
Then unmask ruby-1.9 as follows:
 
<console>
###i## install -d /etc/portage
###i## echo "dev-lang/ruby:1.9" >> /etc/portage/package.unmask
</console>
If you are using Funtoo stable, then you will also need to do this:
 
<console>
###i## echo "dev-lang/ruby:1.9" >> /etc/portage/package.keywords
</console>


=== Why is Funtoo Linux still an older udev? ===
Historically, we have, in order to avoid problems introduced with newer udev versions.


Funtoo Linux currently uses udev-160 and generally updates udev less frequently than in Gentoo Linux.
We have just recently migrated to <tt>eudev</tt>, an udev fork, and will be keeping udev up-to-date.


=== What is the minimum kernel version I can use with Funtoo Linux? ===
=== What is the minimum kernel version I can use with Funtoo Linux? ===


Without making changes to the default version of the udev package, Funtoo Linux is compatible with kernel versions 2.6.27 and greater. To use earlier kernels or enterprise kernels, see below.
We test and support 2.6.32 and above, and maintain compatiblity with RHEL 6 kernels, which are based on 2.6.32 and heavily patched.
 
=== I need to use a kernel earlier than 2.6.27. What should I do? ===
 
To use a RHEL5 or RHEL5-based kernel, you will need to use udev-146 or earlier. Funtoo Linux provides these versions in its portage tree. All you need to do is add the following line to <tt>/etc/portage/package.mask</tt>:
<pre>
>=sys-fs/udev-160
</pre>
 
Then, emerge {{Package|sys-fs/udev}}:
 
<console>
###i## emerge udev
</console>
 
You can now reboot with a RHEL5-based kernel and udev will still work properly. <tt>udev-135</tt> is also available for even earlier kernels.
 
=== How do I use a RHEL5-based kernel, such as openvz-sources-2.6.18* with Funtoo? ===
 
The steps required to do this, including downgrading udev and emerging gcc-4.1.2, can be found in the [[RHEL5 Kernel HOWTO]]


=== Why is package.mask a directory? ===
=== Why is package.mask a directory? ===


I decided to convert <tt>/usr/portage/profiles/package.mask</tt> to a directory as soon as I discovered that this was a supported feature in the current Portage. This allows us to maintain package.mask data more effectively.
Portage allows <tt>/usr/portage/profiles/package.mask</tt> to be a directory. We use this to organize our package masks into categories so they are easier to maintain.


=== Git complains and aborts when I emerge --sync. ===
=== Git complains and aborts when I emerge --sync. ===
Line 123: Line 111:
<console>
<console>
###i## cd /usr/portage
###i## cd /usr/portage
###i## git reset --hard origin/funtoo.org
###i## git reset --hard
</console>
</console>
This should restore your portage tree to a consistent state and allow future <tt>emerge --sync</tt> commands to complete successfully.
This should restore your portage tree to a consistent state and allow future <tt>emerge --sync</tt> commands to complete successfully.


If this doesn't work, then you may have a conflicted merge. Maybe you modified some local ebuilds? To view conflicts, type <tt>git diff --stat</tt> from within the <tt>/usr/portage</tt> directory. You can choose to either resolve these conflicts or revert back to the official Funtoo Portage tree.
If this doesn't work, the simplest way to fix this is to delete your <tt>/usr/portage</tt> directory and run <tt>emerge --sync</tt> again. This will download a fresh tree.
 
If you want to throw away your local changes and simply use the Funtoo Portage tree, you'll need to remove all the files in <tt>/usr/portage</tt> besides the <tt>.git</tt> directory, and then trying the <tt>git reset --hard origin/funtoo.org</tt> command again, as follows:
 
<console>
###i## cd /usr/portage
###i## mv distfiles ..
###i## rm -rf * .gitignore
###i## git reset --hard origin/funtoo.org
###i## mv ../distfiles .
</console>
Now everything should be working again.


=== How do I tell if a problem I am having originates from Gentoo or Funtoo? ===
=== How do I tell if a problem I am having originates from Gentoo or Funtoo? ===


You can tell if there are any Funtoo changes to an ebuild by browsing the [http://www.github.com/funtoo/funtoo-overlay funtoo-overlay]. All the Funtoo-specific ebuilds can be found in our overlay. If you see an ebuild in my overlay, then we use my version ''instead of'' the Gentoo version. If you don't see it in the funtoo overlay, then it comes from Gentoo.
Let us figure this out for you. Report a bug to our bug tracker, and we will determine how to resolve the issue. See [[Reporting Bugs]].


=== How can I see the differences between the Gentoo and Funtoo Portage trees? ===
=== How can I see the differences between the Gentoo and Funtoo Portage trees? ===


In the old days, this was tricky, but now you just look at the [http://www.github.com/funtoo/funtoo-overlay funtoo-overlay] for a complete repository of all the Funtoo-specific stuff. Everything ''not'' in the Funtoo overlay comes from Gentoo, with a few exceptions -- see [[Portage Tree]] for details.
In the old days, this was tricky. We do not have a comprehensive way to do this, but here are some things to start looking at:
 
* See the [http://www.github.com/funtoo/funtoo-overlay funtoo-overlay] for our main repository of Funtoo-specific stuff -- this is our main Funtoo package repository, but not our only one.
* To get a full view of everything, see [http://git.funtoo.org/funtoo-overlay/tree/funtoo/scripts/merge.py our merge script] which generates our unified <tt>emerge --sync</tt>able tree. This describes everything that is part of Funtoo Linux.
* We have an automated report which is visible at [[Compare Forked Packages To Gentoo]]. This report is designed for Funtoo developers, and lists only the "bad" stuff -- areas in which our packages are older than what is in Gentoo Linux. We use this report to identify ebuilds that need to be updated in Funtoo Linux.


=== Is Paludis compatible with the Funtoo Portage tree? ===
=== Is Paludis compatible with the Funtoo Portage tree? ===
Line 156: Line 137:
=== What about pkgcore? ===
=== What about pkgcore? ===


Pkgcore is not currently compatible with Funtoo Linux but efforts are under way to resolve this.
Pkgcore is not currently compatible with Funtoo Linux and this isn't something we test.


=== How do I report a bug? ===
=== How do I report a bug? ===


The best way to report your bug is to describe the issue you are having on the [http://groups.google.com/group/funtoo-dev funtoo-dev mailing list]. Another option is to ask for support in the [irc://irc.freenode.net/funtoo #funtoo]. In general, it's best to contact us first about an issue you are having, rather than opening a Gentoo bug report, unless you are quite familiar with the issue and are fairly certain that it is not a Funtoo Linux issue.
We have a bug tracker. See [[Reporting Bugs]].
 
=== How do I become a Funtoo developer? ===
 
First, we want you to be a Funtoo Linux user. Funtoo Linux is a project run by users.
 
We have different ways you can get involved:
 
==== Staff ====
 
Staff members help with things like ebuild maintenance, ensuring stages build, wiki documentation, and generally supporting the project by keeping it healthy.


If you report a bug to Gentoo that may impact Funtoo Linux in some way, please post information about it to the [http://groups.google.com/group/funtoo-dev funtoo-dev mailing list] so we are aware of the issue.
==== Developers ====


* More informations: [[Reporting Bugs|Guidelines for Reporting Bugs]].
Developers help by working on maintenance of certain ebuilds, or even entire architectures or flavors of Funtoo Linux, like ARM or hardened.


=== How do I become a Funtoo developer? ===
==== Contributors ====


Funtoo is a personal project of mine, so I'm the only real developer. However, I involve everyone on the [http://groups.google.com/group/funtoo-dev funtoo-dev mailing list] and [irc://irc.freenode.net/funtoo #funtoo] in what I am doing so that patches, feedback, requests, etc. can be shared. My advice is to get involved in the Funtoo community on the mailing list and irc channel.
Contributors often work semi-independently, and commit their ebuilds or code to their own repositories. We then 'pull' from these repositories, often using automated tools, so their updates automatically become part of Funtoo Linux.


== General Funtoo Stuff ==
==== In Summary ====


=== What is funtoo.org? ===
In reality, no one person fits 100% into a single category, and people who are actively involved in Funtoo Linux are doing some level of each of these things.


Funtoo.org is the online home of Daniel Robbins (me) and is a place to put all my stuff.
I suggest hanging out in the #funtoo channel on Freenode and participating in [http://forums.funtoo.org the forums] and getting to know everyone in the community, and find an area in Funtoo Linux that you want to improve. If you have skills, and don't know what to improve, then ask in the Forums, and we'll help point you in the right direction.  


=== What kind of stuff? ===
I always need people who are passionate about documenting technologies. There is so much to be documented. We have lots of bugs on the bug tracker that you can help with. And we are always open to people who want to take an out-of-date ebuild and give it some love. A great way to start doing this is to start filing bugs on [http://bugs.funtoo.org our bug tracker] and then start fixing these bugs by submitting patches. After a while, we'll get the idea that you are wanting to help, and we'll either start merging in an overlay of yours or find some other way for you to contribute.


Well, I have Funtoo Linux, which is a Gentoo Linux variant. Then I have technical articles -- some new, and some updated versions of originals that appeared on IBM developerWorks.
Here are some tips for working with us:


Then I have [[Metro]], an operating system build tool, and I have [[Keychain]], which is a tool to help you manage RSA and DSA keys for ssh.
* We have limited time, and don't work on Funtoo Linux full-time. Please be respectful of that.
* We are a very small project. As of mid-June 2014, we have four staff members (including BDFL) with commit rights Funtoo repositories, and only two (including BDFL) commit regularly.
* A priority is placed on being friendly and easy-going. If you are irritable or get into arguments often, and think that your technical skills will result in these deficiencies being overlooked, you will be unpleasantly surprised. We're called 'fun'too for a reason.


So Funtoo is not just Funtoo Linux.
== General Funtoo Stuff ==


=== What is 'Funtoo' all about? And 'Funtoo Linux'? ===
=== What is 'Funtoo' all about? And 'Funtoo Linux'? ===
Line 198: Line 191:
=== How many developers are working on Funtoo Linux? ===
=== How many developers are working on Funtoo Linux? ===


Funtoo Linux development is led by Daniel Robbins, along with a [[Core Team]] that also makes significant contributions to Funtoo Linux development and Funtoo infrastructure.
Funtoo Linux development is led by Daniel Robbins. We have one development lead, and a couple of other people who commit semi-infrequently. So, currently, about 4 people.


=== Is Funtoo Linux a fork of Gentoo Linux? ===
=== Is Funtoo Linux a fork of Gentoo Linux? ===


It depends on your definition of <tt>fork</tt>. Officially, I am calling Funtoo Linux a <tt>Gentoo Linux variant</tt>, meaning that it is more like another flavor of Gentoo than a fork.
Funtoo Linux is not a full fork of Gentoo Linux, but we do fork some ebuilds.


We share our changes and bug fixes with the Gentoo project, so Gentoo is free to merge in any of our changes at any time. We also merge in Gentoo's changes every 12 hours.
It's more accurate to refer to Funtoo Linux as a <tt>Gentoo Linux variant</tt>, meaning that it is more like another flavor of Gentoo than a fork.


I could officially call Funtoo Linux a fork of Gentoo Linux, but Gentoo could merge most of our changes into Gentoo proper and then what would Funtoo Linux be? It'd be my variant of Gentoo, that's what it'd be. So let's just call it a variant of Gentoo.
We share our changes and bug fixes with the Gentoo project, so Gentoo is free to merge in any of our changes at any time.


=== What is the best way to interact with the Funtoo community? ===
=== What is the best way to interact with the Funtoo community? ===


I recommend joining the [http://groups.google.com/group/funtoo-dev funtoo-dev mailing list] and, if desired, hanging out in the [irc://irc.freenode.net/funtoo #funtoo] on freenode.
There is a list of resources on our [[Welcome]] page that is kept up-to-date.
 
The [http://groups.google.com/group/funtoo-dev funtoo-dev mailing list] as well as the [irc://irc.freenode.net/funtoo #funtoo] are unmoderated, open discussion forums for both Funtoo Linux users and developers. In addition, these are ''also'' the official lists for discussing other Funtoo projects such as [[Metro]] and [[Keychain]].


=== What Architectures does Funtoo Linux support? ===
=== What Architectures does Funtoo Linux support? ===


While Funtoo Linux can run on any architecture that Gentoo Linux supports, we are only maintaining Funtoo Linux for x86 and amd64 architectures. Adding support for other architectures may require a little bit of unmasking work in our Portage tree -- or not. We're not testing anything but x86 and amd64, so we don't know :)
Currently, Funtoo Linux is supporting x86-32bit, x86-64bit, including hardened and pure64 (non-multilib), as well as ARM. There has been a Sparc64 build in the past, which could always come back in the future if others come forward to maintain it.


=== How should a developer use package.mask? ===
=== How should a developer use package.mask? ===


We currently have four files in the package.mask directory -- <tt>gentoo</tt>, <tt>funtoo</tt>, <tt>funtoo-cautionary</tt> and <tt>sunrise</tt>. Gentoo is an almost pristine version of the upstream gentoo package.mask. It differs from gentoo only in that we will remove stuff from it that we no longer want in it, but we don't ''add'' masks to this file. So if there is a mask in <tt>gentoo</tt>, you know it came upstream from Gentoo.
We have various package.mask files in <tt>funtoo-overlay</tt>:


<tt>funtoo</tt> is where we place our masks. <tt>funtoo-cautionary</tt> is where we place masks that are designed to shield us from upstream unstable version changes to core packages, since we don't want to simply follow Gentoo unstable -- instead, we want to control when gcc and glibc switch to new versions. <tt>sunrise</tt> contains a bunch of sunrise and other miscellaneous masks from the <tt>mpd</tt> overlays. It is currently sort of our &quot;junk drawer&quot; that we'll get around to cleaning up at some point.
* <tt>funtoo-cautionary</tt> - masks that are in place to protect us from upstream changes in Gentoo Linux, or from ourselves.
* <tt>funtoo-staging</tt> - stuff that is masked for testing, and is intended to be unmasked soon.
* <tt>funtoo-toolchain</tt> - masks related to our toolchain, which is treated with care (we like to upgrade it in a careful and coordinated fashion.)
* <tt>funtoo-udev</tt> - this may disappear soon -- it's one of those mask files that we create for a special purpose -- in this case, stuff related to our <tt>eudev</tt> migration.


=== Do you use the normal Gentoo system profiles? ===
=== Do you use the normal Gentoo system profiles? ===


I've made some minor changes to the Funtoo Linux <tt>profiles/</tt> directory, and I'll continue to make improvements as time goes on. The most recent change I made (as of 17 Jul 2009) was to add <tt>net-dns/openresolv</tt> to the core system profile. Since Funtoo development focuses primarily on the core system, you can expect our system profiles to be somewhat different from Gentoo's. However, from a user perspective, you use them the same way and we have the same profile names that are in Gentoo.
I designed a new profile system for Funtoo which you can read about at [[Funtoo 1.0 Profile]]. It has a lot of cool functionality, including ''flavors'', ''mix-ins'' and other cool things. Thanks to Ryan Harris (rh1) for the excellent Funtoo <tt>eselect</tt> implementation for our new profile system.


=== Is Funtoo Linux More Stable Than Gentoo Linux? ===
=== Is Funtoo Linux More Stable Than Gentoo Linux? ===


That is a hard question to answer directly, as one person's definition of &quot;stable&quot; may be different than another person's, and I do not know how you intend to use Funtoo Linux. So rather than tackle the question head-on, I can give you some additional information that may help you decide:
The short answer is that we don't know, but some people think it is, and we strive to make it more reliable than Gentoo, not because we're competitive, but because Funtoo Linux originally started as a version of Gentoo Linux that had several bugs fixed. We like to fix things that we find that aren't working.
 
* The goal of Funtoo Linux is to allow me to improve the Gentoo core system and tools. That does mean that I will be periodically changing various parts of Gentoo plumbing from time to time. When I do this, I try to be careful and provide notices of upcoming major changes on the mailing list, Atom feed and on the Web site.
* Both Funtoo Linux and Gentoo Linux have a stable and unstable (<tt>~</tt> - called "current" in Funtoo) tree
* The Funtoo and Gentoo trees are 99% identical. However, there are signficant differences in certain areas, particularly the core system and Perl, Python and Ruby.
* Funtoo and Gentoo trees do have some significant differences for core packages, particularly <tt>openrc</tt>, <tt>baselayout</tt>, <tt>udev</tt> and <tt>lvm2</tt>.
* If it is important to you, Metro is tested daily to ensure that it can build Funtoo Linux (and Gentoo Linux) successfully. However, these builds are not performed in advance of the changes hitting the public git-based Portage tree.
* Any Metro Funtoo Linux build failures found are typically fixed in the Funtoo Portage within 0-1 days. Gentoo build failures are only fixed if they are related to an issue with Metro. So there is very fast response in Funtoo to core system build failures. In Gentoo, this process is not as integrated.
* Funtoo merges in upstream changes from Gentoo Portage every 12 hours.
* I focus on testing the core, non-GUI/non-X system. Sometimes Funtoo will trail behind in udev revisions that cutting-edge desktop users want to run.
* Both Funtoo Linux stable and current have OpenRC, dhcpcd-5 and OpenResolv integrated by default.
* Funtoo Linux current tries to upgrade certain core packages such as <tt>udev</tt>, <tt>gcc</tt> and <tt>glibc</tt> much less frequently and in a more controlled manner than Gentoo unstable. This may or may not be a benefit to you, depending on what you are looking for. Basically, I am trying to offer the package updates of Gentoo Linux unstable without as much of the (too frequent, in my opinion) core system changes that can often cause problems for people.
* The Funtoo receives Gentoo changes once every 12 hours. In contrast, the Gentoo rsync tree receives updates hourly. This means that the changes in the Funtoo tree are compressed into a single monolithic event, whereas the Gentoo tree undergoes more continual, but less signficant, change every hour.
* Significant build-related bugs found by Funtoo that also impact Gentoo Linux are sent upstream to [http://bugs.gentoo.org bugs.gentoo.org].


=== Do you use Gentoo's Guide XML for Documentation? ===
=== Do you use Gentoo's Guide XML for Documentation? ===


I originally created Gentoo's Guide XML format (which I originally created for Gentoo) for documentation, and started to transition away from it in favor of [http://docutils.sourceforge.net/rst.html ReStructuredText]. However, now I am trying to support Guide XML ''and'' [http://docutils.sourceforge.net/rst.html ReStructuredText] as they are both useful for different types of things.
I've made the decision to go with MediaWiki as our official documentation format.
 
Many funtoo.org articles and documents are maintained in ReStructuredText format. HTML versions of the ReStructuredText documentation are generated by first converting the <tt>.rst</tt> file to XML using <tt>rst2xml.py</tt> (part of the docutils distribution), and then using XSLT to convert the resultant XML to HTML.
 
To view the plaintext [http://docutils.sourceforge.net/rst.html ReStructuredText] version of a document, append <tt>/index.rst</tt> to any funtoo.org URL. For example, here is the [http://www.funtoo.org/en/funtoo/faq/index.rst ReStructuredText version of this document]


=== Are you looking for translators? ===
=== Are you looking for translators? ===
Line 267: Line 244:
=== I want to fork the Portage tree. How do I do this? ===
=== I want to fork the Portage tree. How do I do this? ===


The old way used to involve forking our huge, complete Portage tree. Currently, the best way to do it involves forking the [http://www.github.com/funtoo/funtoo-overlay funtoo-overlay], which is much smaller, or creating your own overlay. I have scripts that combine the Funtoo overlay and the Gentoo tree to create a unified Portage tree.
Currently, the best way to do it involves forking the [http://www.github.com/funtoo/funtoo-overlay funtoo-overlay], which is much smaller, or creating your own overlay. I have scripts that combine the Funtoo overlay and the Gentoo tree to create a unified Portage tree.


=== I have forked my own Portage tree. How do I generate metadata for it? ===
=== Where can I learn more about <tt>git</tt>? ===


You should only do this if you are creating a unified Portage tree for distribution to users. Otherwise, it is much more efficient to use an overlay for this purpose.
So, you want to learn more about <tt>git</tt>, do you? A collection of excellent git resources is now available on the [[Git Guide]].


First, add <tt>FEATURES=&quot;metadata-transfer&quot;</tt> to your <tt>/etc/make.conf</tt> file. Then type the following commands:
=== Where can I learn more about the Funtoo Linux philosophy -- what you are about? ===


<console>
See [[Funtoo Linux Vision]].
###i## cd /usr/portage
###i## egencache --update --jobs=4
###i## cd metadata/cache
###i## git add .
###i## git commit -a
</console>
<tt>egencache</tt> is part of {{Package|sys-apps/portage}} and was kindly integrated by Zack Medico, Portage maintainer.
 
=== Where can I learn more about <tt>git</tt>? ===
 
So, you want to learn more about <tt>git</tt>, do you? A collection of excellent git resources is now available on the [[Git Guide]].


[[Category:HOWTO]]
[[Category:FAQ]]
[[Category:Official Documentation]]

Revision as of 15:19, October 27, 2014

Top Questions

Why use a Source-Based Linux Distribution like Funtoo Linux?

Using a source-based Linux distribution like Funtoo Linux could be likened to driving an exotic sports car. It's an experience that is appreciated by professionals and technology enthusiasts because it simply offers a more direct, engaging experience with the underlying technology. You can push the technology further. You have more control. It is more satisfying.

If you aren't looking for something "special", there are a number of binary-only Linux distributions to choose from. They will get you from point A to point B. You won't have as much fun or be as connected to what's going on, but maybe that's not what you're looking for.

But if you do appreciate a deeper connection to technology, and pushing technology to its limits, Funtoo Linux may be a life-changing experience for you.

Do you support systemd?

Part of the distinctiveness of Funtoo Linux is its dependency-based OpenRC init system, so changing this would make it something other than Funtoo Linux. So we do not support systemd as part of Funtoo Linux.

Thanks to the work of Dantrell B., we do, however, fully support running GNOME 3.12+ without depending on systemd.

What's with the Question Mark in the Logo?

We're currently looking for a new logo. I change it periodically and include a question mark to encourage people to submit ideas. You can post ideas to the forums.

Do you use GitHub?

Funtoo Linux has core git repositories at git.funtoo.org, which are automatically synced to GitHub, so all our public repositories are available on GitHub. But we don't use GitHub for pull requests, documentation, or tracking bugs. We have our own infrastructure for that. More information is available on the How to 'Dev' page.

Does Funtoo use an overlay?

An overlay is a Portage tree that is added "on top of" an existing Portage tree. Funtoo Linux allows you to use overlays, and we use overlays for development, but we deliver a single Funtoo Portage tree via git. This tree is generated automatically from the Gentoo Portage tree and a number of other overlays, and merged into a single tree. This is the tree that you get when you run emerge --sync. More information is available on the How to 'Dev' page.

How do I see what overlay a particular ebuild comes from?

http://ports.funtoo.org/packages.xml lists all ebuilds that come from a non-Gentoo overlay, in XML format. You can search this file for the ebuild you are interested in. If you don't find it, then it came from Gentoo.

Does Funtoo Linux use a Red Hat or Debian kernel?

Funtoo Linux users are free to choose their own kernel, and we offer additional kernels from other Linux distributions such as Debian, Red Hat Enterprise Linux and others. These are documented on the Funtoo Linux Kernels page.

Using Funtoo Linux, Portage and Git

How do I start using Funtoo Linux?

For information on how to start using Funtoo Linux, see Funtoo Linux Installation.

Is it possible to convert an existing Gentoo Linux install to Funtoo Linux?

Yes, it is possible, but not supported. Some people have done it, but you should not rely on it to always work. It is always best to install Funtoo Linux by following the steps in Funtoo Linux Installation.

What is mini-manifest?

Manifests are files that you will find inside a Portage tree on a Gentoo Linux or Funtoo Linux system, one associated with each package -- for example dev-lang/php will have a single Manifest file for all PHP ebuilds. Traditionally, the Manifest files contain cryptographic hashes of all files in the Portage tree, plus hashes of all downloadable files (distfiles) used to build the package.

A feature introduced by Funtoo Linux, and now integrated upstream into Gentoo's Portage, are mini-Manifests. Because we use git for our Portage tree, which uses cryptographic hashes internally, we don't need Manifests to include hashes for all files in Portage, just files that need to be downloaded from mirrors. This is what mini-Manifests are -- Manifest files that have gone on a diet.

How do I get my initial Portage tree, or update my Portage tree?

This is done by typing:

root # emerge --sync

Emerge will use the git pull command to update your tree for you, or will use git clone if one doesn't exist.

I set up my initial git-based Portage tree, but /usr/portage seems to be empty.

You forgot to type:

root # cd /usr/portage
root # git checkout funtoo.org

Funtoo Linux's portage tree snapshot ships with a mostly empty branch active by default to reduce the size of the resultant snapshot tarball.

What is the status of Funtoo's UTF-8 support?

Funtoo Linux has UTF-8 enabled by default, even for the root user. This allows UTF-8 files to be edited without issue, root GNU screen sessions to display UTF-8 character sets properly, etc. The classic sort order of ls -a has been preserved by setting LC_COLLATE to POSIX. All other locale settings inherit the system default defined in the LANG variable, which is set to en_US.UTF-8.

What if I want to use a non-English locale/language?

I recommend two things. First, it's strongly recommended that you always use a UTF-8-based locale.

The next thing I recommend is to try to avoid changing the global system LANG setting, and instead set the LANG setting on a per-user basis by adding the desired LANG setting to your ~/.bashrc. This will preserve English log output in /var/log and make it easier to search for more common matching English strings on the Internet when you need help.

If you really want to change the default system LANG setting (taking into account the paragraph above,) then it's recommended that you create your own /etc/env.d/02locale file that contains something like this:

LANG="fr_CA.UTF-8"

You will need to run env-update and source /etc/profile to apply changes immediately to any open shells, and reboot to apply changes fully.

What is different with Funtoo's Ruby?

Funtoo Linux tracks Gentoo's Ruby, but we do have one change for ruby-1.9 and greater - the binary name is changed with /usr/bin/ruby1.9 instead of Gentoo's /usr/bin/ruby19. This makes the versioning consistent with Python binaries and MacOS X. This means that for ruby-1.9 and greater. While the path to the binary has changed, all Portage variables are the same as Gentoo, so you should use "ruby19" for the RUBY_TARGETS setting in /etc/make.conf.

Does Funtoo Linux use an older udev?

Historically, we have, in order to avoid problems introduced with newer udev versions.

We have just recently migrated to eudev, an udev fork, and will be keeping udev up-to-date.

What is the minimum kernel version I can use with Funtoo Linux?

We test and support 2.6.32 and above, and maintain compatiblity with RHEL 6 kernels, which are based on 2.6.32 and heavily patched.

Why is package.mask a directory?

Portage allows /usr/portage/profiles/package.mask to be a directory. We use this to organize our package masks into categories so they are easier to maintain.

Git complains and aborts when I emerge --sync.

It appears that a previous git merge was interrupted or did not complete, leaving your portage tree in an intermediate state. Typically, this can be fixed by typing:

root # cd /usr/portage
root # git reset --hard

This should restore your portage tree to a consistent state and allow future emerge --sync commands to complete successfully.

If this doesn't work, the simplest way to fix this is to delete your /usr/portage directory and run emerge --sync again. This will download a fresh tree.

How do I tell if a problem I am having originates from Gentoo or Funtoo?

Let us figure this out for you. Report a bug to our bug tracker, and we will determine how to resolve the issue. See Reporting Bugs.

How can I see the differences between the Gentoo and Funtoo Portage trees?

In the old days, this was tricky. We do not have a comprehensive way to do this, but here are some things to start looking at:

  • See the funtoo-overlay for our main repository of Funtoo-specific stuff -- this is our main Funtoo package repository, but not our only one.
  • To get a full view of everything, see our merge script which generates our unified emerge --syncable tree. This describes everything that is part of Funtoo Linux.
  • We have an automated report which is visible at Compare Forked Packages To Gentoo. This report is designed for Funtoo developers, and lists only the "bad" stuff -- areas in which our packages are older than what is in Gentoo Linux. We use this report to identify ebuilds that need to be updated in Funtoo Linux.

Is Paludis compatible with the Funtoo Portage tree?

Paludis does not appear to be compatible with the Funtoo Portage tree, unfortunately. It does not support the package.mask directory without additional hooks, and also does not support merging device nodes. These features are supported by Portage and we use both of these capabilities. I think that both package.mask (and package.keywords, etc.) directories are a good idea, and I also think it's a good idea for the package manager to support device nodes, which is particularly useful for the udev and baselayout ebuilds. Funtoo Linux has separate versions of these packages, and these ebuilds are easier to maintain if device nodes are correctly supported by the package manger, and the package.mask directory is a great help to us as well.

We could maintain a patched version of Paludis that would be useable with the Funtoo Portage tree, but I don't want to get into the business of supporting a non-standard package manager as the upstream project seems not seem very supportive of getting these compatibility issues resolved, and thus this could turn into a maintenance burden for Funtoo. So I'd rather just not support Paludis for now.

What about pkgcore?

Pkgcore is not currently compatible with Funtoo Linux and this isn't something we test.

How do I report a bug?

We have a bug tracker. See Reporting Bugs.

How do I become a Funtoo developer?

First, we want you to be a Funtoo Linux user. Funtoo Linux is a project run by users.

We have different ways you can get involved:

Staff

Staff members help with things like ebuild maintenance, ensuring stages build, wiki documentation, and generally supporting the project by keeping it healthy.

Developers

Developers help by working on maintenance of certain ebuilds, or even entire architectures or flavors of Funtoo Linux, like ARM or hardened.

Contributors

Contributors often work semi-independently, and commit their ebuilds or code to their own repositories. We then 'pull' from these repositories, often using automated tools, so their updates automatically become part of Funtoo Linux.

In Summary

In reality, no one person fits 100% into a single category, and people who are actively involved in Funtoo Linux are doing some level of each of these things.

I suggest hanging out in the #funtoo channel on Freenode and participating in the forums and getting to know everyone in the community, and find an area in Funtoo Linux that you want to improve. If you have skills, and don't know what to improve, then ask in the Forums, and we'll help point you in the right direction.

I always need people who are passionate about documenting technologies. There is so much to be documented. We have lots of bugs on the bug tracker that you can help with. And we are always open to people who want to take an out-of-date ebuild and give it some love. A great way to start doing this is to start filing bugs on our bug tracker and then start fixing these bugs by submitting patches. After a while, we'll get the idea that you are wanting to help, and we'll either start merging in an overlay of yours or find some other way for you to contribute.

Here are some tips for working with us:

  • We have limited time, and don't work on Funtoo Linux full-time. Please be respectful of that.
  • We are a very small project. As of mid-June 2014, we have four staff members (including BDFL) with commit rights Funtoo repositories, and only two (including BDFL) commit regularly.
  • A priority is placed on being friendly and easy-going. If you are irritable or get into arguments often, and think that your technical skills will result in these deficiencies being overlooked, you will be unpleasantly surprised. We're called 'fun'too for a reason.

General Funtoo Stuff

What is 'Funtoo' all about? And 'Funtoo Linux'?

Funtoo by itself refers to this site, or the larger Funtoo project run by Daniel Robbins. That's just a fancy way of saying that Funtoo refers to all the stuff I'm doing.

Funtoo Linux refers specifically to my variant of Gentoo Linux.

If you see me use the phrase Funtoo Portage tree or Funtoo ebuild, I'm just talking about our separate (and slightly different) Portage tree, or our version of an ebuild.

What is 'tnufoo'?

tnufoo is funtoo rotated 180 degrees vertically.

How many developers are working on Funtoo Linux?

Funtoo Linux development is led by Daniel Robbins. We have one development lead, and a couple of other people who commit semi-infrequently. So, currently, about 4 people.

Is Funtoo Linux a fork of Gentoo Linux?

Funtoo Linux is not a full fork of Gentoo Linux, but we do fork some ebuilds.

It's more accurate to refer to Funtoo Linux as a Gentoo Linux variant, meaning that it is more like another flavor of Gentoo than a fork.

We share our changes and bug fixes with the Gentoo project, so Gentoo is free to merge in any of our changes at any time.

What is the best way to interact with the Funtoo community?

There is a list of resources on our Welcome page that is kept up-to-date.

What Architectures does Funtoo Linux support?

Currently, Funtoo Linux is supporting x86-32bit, x86-64bit, including hardened and pure64 (non-multilib), as well as ARM. There has been a Sparc64 build in the past, which could always come back in the future if others come forward to maintain it.

How should a developer use package.mask?

We have various package.mask files in funtoo-overlay:

  • funtoo-cautionary - masks that are in place to protect us from upstream changes in Gentoo Linux, or from ourselves.
  • funtoo-staging - stuff that is masked for testing, and is intended to be unmasked soon.
  • funtoo-toolchain - masks related to our toolchain, which is treated with care (we like to upgrade it in a careful and coordinated fashion.)
  • funtoo-udev - this may disappear soon -- it's one of those mask files that we create for a special purpose -- in this case, stuff related to our eudev migration.

Do you use the normal Gentoo system profiles?

I designed a new profile system for Funtoo which you can read about at Funtoo 1.0 Profile. It has a lot of cool functionality, including flavors, mix-ins and other cool things. Thanks to Ryan Harris (rh1) for the excellent Funtoo eselect implementation for our new profile system.

Is Funtoo Linux More Stable Than Gentoo Linux?

The short answer is that we don't know, but some people think it is, and we strive to make it more reliable than Gentoo, not because we're competitive, but because Funtoo Linux originally started as a version of Gentoo Linux that had several bugs fixed. We like to fix things that we find that aren't working.

Do you use Gentoo's Guide XML for Documentation?

I've made the decision to go with MediaWiki as our official documentation format.

Are you looking for translators?

Many kind people have provided translations of the funtoo.org pages, and the old version of the site used to contain these translations. However, after much consideration, I've decided to not provide translated versions of funtoo.org pages, for several reasons:

  • Translated documents tend to become out-of-date
  • Updating the translated documents is quite a bit of work
  • Most people online seem to have at least a basic grasp of English

For these reasons, I'm going to focus on improving the quantity and quality of English documentation, and not focus on translations for now.

Forking the Portage Tree

I want to fork the Portage tree. How do I do this?

Currently, the best way to do it involves forking the funtoo-overlay, which is much smaller, or creating your own overlay. I have scripts that combine the Funtoo overlay and the Gentoo tree to create a unified Portage tree.

Where can I learn more about git?

So, you want to learn more about git, do you? A collection of excellent git resources is now available on the Git Guide.

Where can I learn more about the Funtoo Linux philosophy -- what you are about?

See Funtoo Linux Vision.