Introduction

Anyone who has used Gentoo Linux before will be familiar with the Portage package management system which is used to manage installed software and synchronise the installation repository. New users however may not be familiar with the basics of the Gentoo Linux build system. This section attempts to provide the basic information and references required to understand how the Hacking Networked Solutions overlay for Gentoo Linux integrates with the official Gentoo Linux distribution.

The Gentoo build system and portage tree

The Gentoo build system is a collection of tightly integrated applications, written using the bash and python scripting languages, which is capable of building, installing, upgrading and removing any package described by an ebuild in the portage tree. To keep things as simple as possible an ebuild is in fact just a special kind of bash script which is run in an environment provided by the emerge application. Each ebuild describes how to perform the actions mentioned above on a particular version of a package.

The ebuild files for all versions of a particular package are grouped together in a two level deep directory hierarchy comprised of the class of the package and the name of the package, for example app-admin/syslog-ng which represents the syslog-ng package in the app-admin package class. A complete path to an actual ebuild would therefore look something like app-admin/syslog-ng/syslog-ng-3.1.1.ebuild and would correspond to version 3.1.1 of the syslog-ng package. The complete collection of all the ebuild files, and supporting files for all packages such as patches and manifests, is referred to as the portage tree.

Extending the portage tree

In the early days of Gentoo Linux there was no user friendly method of incorporating software packages provided by external sources and the official portage tree was the only public source of software capable of being installed using the portage package management system. As Gentoo Linux gained momentum a method of easily incorporating software packaged by third parties became a requirement and thus the concept of overlays was born.

Overlays easily allow external developers to create their own "miniature" portage tree which can contain anything the official portage tree can contain such as ebuild files for packaging new software not yet available in the official repository as well as supporting files such as patches, manifests and even new eclass files to extend the portage package manager.

When the portage package management system is asked to search for a package, perhaps to install or upgrade it, any overlays which have been installed are temporarily merged with the official repository making it appear as if they are a single larger repository. In this way overlays allow the official package repository to be extended by third party developers in a totally user-transparent manner.

The Hacking Networked Solutions overlay for Gentoo Linux

The Hacking Networked Solutions overlay for Gentoo Linux is a public overlay containing packages for software not included in the official package repository which have either been developed or packaged by Hacking Network Solutions.

Information:
The overlay does not modify any existing software in the portage tree but instead provides a collection of ebuild files for new packages which are not yet available in the official distribution. Patches to software packages which are already in the official portage tree are made available in the Hacking Networked Solutions patch-set for Gentoo Linux.
 

Some of the packages in this overlay may eventually find their way into the official package repository, at which time they will be removed from this overlay, and are therefore un-masked for supported architectures. Other packages, which are soft masked for most architectures, are never intended to be migrated to the official Gentoo repository, usually because they are used purely internally by Hacking Networked Solutions.