Overlays sind das Pendant von Gentoo zu PPAs. Es ist eine einfache Lösung und gefällt mir ziemlich gut.
Wobei, um fair zu blieben, für mich war mein Overlay besonders einfach einzurichten weil ich damals für das PPA ordentliche Makefiles geschrieben hatte. Simdock hätte sonst immer noch den automake-Murks, und izulu hätte gar kein Makefile. Mit den einfachen Makefiles beider Programme ist ein Ebuild schnell geschrieben und damit das Overlay fast schon fertig.
Ein Overlay ist eine Sammlung von Ebuilds. Ebuilds sind soetwas wie .deb-Dateien, nur anders: Eine Textdatei, die den Quellcode verlinkt, die Abhängigkeiten auflistet und beschreibt, wie das Programm kompiliert werden kann. Das Ebuild für simdock sieht z.B. so aus:
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=6
DESCRIPTION="Small dock with pseudo-transparency"
HOMEPAGE="https://github.com/onli/simdock"
SRC_URI="https://github.com/onli/simdock/archive/${PV}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""
RDEPEND="gnome-base/gconf
x11-libs/libwnck:1
x11-libs/wxGTK
x11-libs/libxcb
x11-libs/xcb-util-wm"
DEPEND="${RDEPEND}
x11-proto/xcb-proto
dev-util/pkgconf"
# simdock uses a simple makefile without the configure step
src_configure() {
:
}
Die Kompilierung muss gar nicht weiter beschrieben werden, make
und make install
werden automatisch aufgerufen.
Ein Overlay ist dann einfach ein Ordner im Dateisystem, in dem zusätzlich ein paar Metabeschreibungen liegen, insbesondere Manifest-Dateien mit den Prüfsummen der Quellcodearchive. Weil ich das heraussuchen musste: Diese Manifestdatei erstellt ein
ebuild *.ebuild manifest
Den Ordner könnte man dann mit PORTDIR_OVERLAY
in der make.conf aktivieren.
Dieser Ordner im Dateisystem kann aber auch ein Git-Repository sein. Dann fehlt nur noch eine weitere Metabschreibungsdatei, damit andere Nutzer mit layman das Overlay ins eigene System importieren können. Meines importiert man so:
layman -o https://raw.github.com/onli/overlay/master/repositories.xml -f -a onli
In diesem liegen Ebuilds für izulu und simdock.
Es ist fantastisch wie einfach das ist. Ich schlage mich seit Jahren mit .debs und PPAs herum und hatte dank letzteren und Launchpads Gitimport inzwischen ordentliche .deb-Pakete für Ubuntu, kann das also durchaus bewerten. Ebuild und Overlays sind zehnmal so einfach. Leichter zu verstehen, leichter zu schreiben und leichter einzurichten.