Project Unfork

Project Unfork is a Funtoo Linux effort to reduce the number of forked Gentoo packages and rely on other methods to promote consistent builds, such as the use of ebuild shards. See News:Project_Unfork_Status for more information on the rationale behind Project Unfork.

Important

Project Unfork has been made the "official" Funtoo Linux Portage tree! This means that there is no separate "unfork" tree to test. If you experience issues, as always report a bug to https://bugs.funtoo.org.

Status Update

As of October 12, 2015, the "unfork" tree is now merged into the main Funtoo Linux tree, and Funtoo Linux is now using shards for core packages, x11 (including media libraries), KDE, GNOME, python and perl.

As of October 9, 2015, openrc-0.18 is now available in the tree, masked for testing. While this ebuild is not unforked, we are getting closer to being able to unfork OpenRC. Please unmask and test. This new ebuild packages the funtoo network scripts (corenetwork) externally. I am also in the process of migrating the network scripts to using the Gentoo-standard "net" naming rather than "netif" naming, although the next 1.5.1 revision of corenetwork scripts will be backwards compatible with netif naming to allow for an easy user transition to the more Gentoo-compatible naming scheme.

GNOME 3.16 should be working. So please test this as well.

As of October 4, 2015, a tree currently exists which is cloneable from http://github.com/funtoo/funtoo-staging-unfork. This is a complete Portage tree, and can be used as a /usr/portage replacement, but it does not have cached metadata included, which means that dependency calculation will be very slow initially as Portage manually populates the local metadata cache when emerge calculates dependencies. This is only temporary and will go away once the cache is primed.

Note

The following info is being retained for historical purposes but you now just type emerge --sync in Funtoo Linux to get an updated, unforked tree. The funtoo-staging-unfork tree mentioned below is no longer being updated.

You can use this test tree to help me test the more ambitious efforts of Project Unfork. It is recommended that you use a fresh current stage3 for testing. First, add the new unfork tree, and then perform a system update, to ensure that the base stage3 has been updated to an "unfork stage3". t is also very important to do this prior to setting any profile settings via epro.

# cd /usr
# mv portage portage.old
# git clone https://github.com/funtoo/funtoo-staging-unfork.git portage
# emerge -auDN @system
The recommended profile settings for testing unfork with GNOME (which I am focusing on) are as follows. Enable these after @system is updated:

# epro flavor desktop
# epro mix-ins gnome gnome-3.16-fixups
At this point, test things by emerging xorg-x11, gnome, and other things.

What's Unforked?

The Project Unfork tree currently includes the following unforked components:

  1. The Progress Overlay has been removed and the upstream Gentoo Python ebuilds are available instead (unfork of ~500 packages)
  2. The Funtoo GNOME Overlay has been removed and the upstream Gentoo GNOME ebuilds are available instead (unfork of ~200 packages)
  3. Portage-2.4.0 (2.4.0 is our version of upstream's 2.2.2.1) is available and recommended to be used.

I currently need testing of portage-2.4.0 and GNOME 3.16, with an emphasis on the funtoo-current build, and merging various things without blockers or other complications. Here are things we need to test:

TestCommands
@system (with profile changes)
# emerge -auDN @system
X (try with various VIDEO_CARDS settings)
# emerge xorg-x11
GNOME 3.16
# emerge -auDN gnome
Note

The above should merge perfectly without any necessary USE changes, blockers, or build failures. If not, please report any issues to the Funtoo Linux bug tracker at https://bugs.funtoo.org and note that you are testing the unfork tree. Once things build, we need to make sure things are working okay, particularly GNOME. Start it up, and report any issues you find.

Thanks very much!

-Daniel