Today, I would like to present you a new Linux distribution – reGen2. As the name suggests, project is largely based on Gentoo and maybe some of you have met with this name before.
Originally, reGen2 was started by Caleb Cushing, on the Internet known as xenoterracide, in 2009. After the result of misunderstandings and conflicts with Daniel Robbins (the Funtoo founder) he ceased to care about the Funtoo Portage and created own distribution. Its repository contained three branches: gentoo.org, funtoo.org and regen2.org. The new project was supposed to be easier, faster, more stable and secure distribution. Caleb Cushing was also planning, to introduce a new, faster package management system, which was initially called 'emerge-ng'. Unfortunately, in May 2009, he gave up further work, writing only a few words on his personal blog, to give an idea of how much things needed to be done.
In June 2011, after over two years of the reGen2 Linux being abandoned, we decided to contact xenoterracide and ask him for taking the distribution over. Due to the curtesy of Caleb, today, we have not only the rights to use this name and access to original repository, but we are also able to use its IRC channel on FreeNode network. At the moment, although the name has remained unchanged, it is a completely new project, managed by the AsioTec Team.
reGen2 Linux is a Gentoo variation, meaning that it is more like another flavour of Gentoo than a fork, combining the best features of both, Funtoo and Gentoo Linux distributions. Comparing to the first one, it is able to work not only with Linux kernel, but also with FreeBSD one.The implemented solutions and team policy make it a solution for just about everyone. Moreover, reGen2 is continuous distribution compatible with any from listed above, thus allowing for easy, fast and - most important - painless migration.
From the end user's point of view, the main difference between the three distributions, is the Portage tree. Although each one has a common part familiar with Gentoo, both Funtoo and reGen2 introduces some changes and improvements to it. Our tree is synchronized with Gentoo twice a day, and additionally has integrated two overlays:
With this solution we are able to provide additional software and extend the capabilities of the core system. What is more, none of the existing packages in Portage is replaced. Exceptions are ebuilds merged from regen2-overlay, that aims at enhancing users comfort. This also allows us to fork and replace each package easily until, recently more and more careless, Gentoo developers fix the problem. However, unlike Funtoo, this is preventive in nature and when revised version of the package will go to the main tree, users should be able to benefit from its original version.
The main reGen2 features are:
- Forked Tree: reGen2 has its own Portage Tree that is in 99,9% identical to Gentoo's. The changes made by Gentoo developers are merged into reGen2 every 12 hours, using the automated process. This allows to get improvements, fixes and updates immediately.
- GIT-based Tree: This is often more efficient and faster than rsync. Git also provides SHA-1 integrity-checking functionality that is superior to that, currently existen in Portage, and thus makes it unnecessary to check the checksum of files placed in the tree during the emerge process, what shortens the installation time. Furthermore, the shallow copy mechanism used in reGen2 clones Portage tree with a history truncated and therefore it takes less space and downloads faster. Monthly tree can consume up to 40MB less!
- Thin Manifest: reGen2 features in minimized tree that contains only the unified Portage with "thin" Manifests, which contain digests only for distfiles and not for files in Portage tree. This is to eliminate redundant digests as git already provides SHA1 integrity checks. This results in smaller size and shorter 'emerge' process.
- Local Patch: The feature, originally written by SlashBeast, that allows users to apply their favourite, 3rd party patches without the need to edit ebuilds. By default, localpatch will look into /etc/portage/patches in order to search for patches. However this can be changed by setting LOCALPATCH_OVERLAY variable. In addition, in reGen2, this feature has been expanded by the option to determine which packages will have additional patches applied on.
- XZ Auto-Dependency: There are several ebuilds in the Gentoo Portage repository that use .xz files but do not explicitly depend on xz-utils. A workaround has been added to ebuild.sh to add this dependency to metadata automatically if a .xz file exists in SRC_URI.
- reGen2 Kernel: regen2-sources is a slightly patched to fix security problems, kernel bugs, and to increase compatibility with the more uncommon system architectures kernel based on gentoo-sources. It introduces also Advanced Multi Layered Unification Filesystem, Budget Fair Queueing and Uber-Readahead.
More information about reGen2 Linux can be found on the AsioTec web site.