====== Gentoo: FeM-Overlay ====== Das FeM-Overlay ist von Bitbucket in das FeM-GitLab umgezogen. Die neue Upstream-URL lautet: https://gitlab.fem-net.de/gentoo/fem-overlay.git Bitte passt eure ''/etc/portage/repos.conf'' an und erstellt neue Commits ab sofort immer im GitLab. Der Bitbucket-Mirror wird ca. Dezember 2021 abgeschaltet. Das FeM-Overlay ist ein Portage Overlay für die Gentoo Paketverwaltung. Hier werden Ebuilds und Patches für Software gepflegt, die auf FeM Servern Einsatz findet, so aber nicht im offiziellen Portage-Tree enthalten ist. Hinweis: Manchmal sind Pakete nur temporär im FeM-Overlay bis die Erweiterungen / Patches in den offiziellen Portage-Tree eingepflegt wurden. Kontaktadresse: [[fem-overlay@technik.fem-net.de]] ===== Nutzung ===== * URL des Overlays (git): https://gitlab.fem-net.de/gentoo/fem-overlay.git * Upstream-Repository. Alle Commits werden hier in den master gemerged. ==== Ohne Layman über repos.conf ==== Diese Variante bietet sich an, wenn man selber am Repository Änderungen vornehmen möchte. [fem-overlay] location = /var/db/repos/fem-overlay sync-type = git sync-uri = https://gitlab.fem-net.de/gentoo/fem-overlay.git auto-sync = yes ==== Mit eselect-repository ==== Diese Variante verwendet in der Standardeinstellung ein [[https://github.com/gentoo-mirror/fem-overlay|Clone vom Repository]] mit zusätzlich generierten Metadaten, was emerge beschleunigt. Empfiehlt sich für Systeme, die das Overlay nur nutzen, aber lokal selbst keine Änderungen hinzufügen. eselect repository enable fem-overlay ==== Mit Layman ==== Das Overlay ist in der offiziellen Liste enthalten. Hinzufügen des Overlays layman -a fem-overlay === layman wieder loswerden === # layman Referenzen entfernen rm /etc/portage/repos.conf/layman.conf sed -i -e '/source \/var\/lib\/layman\/make.conf/d' /etc/portage/make.conf sed -i -e '/\*/d' /etc/eix-sync.conf emerge -C layman rm -rf /var/lib/layman eix-sync # oder emerge --sync ===== Ebuilds einreichen ===== Für einen schreibenden Zugriff benötigt man einen Login im [[technik:dienste:gitlab|GitLab]]. Die ist üblicherweise der FeM LDAP-Zugang. Neue ebuilds können per Fork und anschließendem Merge Request eingericht werden. Für zusätzliche Berechtigunge (MRs selbst mergen, Issues bearbeiten, etc.) kann man sich an wenden. ==== Regeln für erfolgreiche Ebuilds im FeM-Overlay ==== * Verwende bei neuen Ebuilds die aktuellste [[http://devmanual.gentoo.org/ebuild-writing/eapi/index.html|EAPI]]. ([[http://dev.gentoo.org/~ulm/pms/head/eapi-cheatsheet.pdf|EAPI Cheat-Sheet]]) * Einzelne eclasses unterstützen nicht die neueste EAPI. In diesem Fall kann die nächstältere benutzt werden. EAPIs, die im Overlay als veraltet markiert sind, //dürfen nicht// in neuen ebuilds benutzt werden. * Im Files-Ordner sollen keine Archive, sondern nur Skripte und Patches liegen. * Alle Ebuilds besitzen einen validen Header # Copyright 1999-2XXX Gentoo Authors # Distributed under the terms of the GNU General Public License v2 * Variablen sollten in der richtigen Standard-Reihenfolge vorliegen EAPI inherit MY_P DESCRIPTION HOMEPAGE SRC_URI LICENSE SLOT KEYWORDS IUSE DEPEND RDEPEND BDEPEND S RESTRICT DOCS * Variablen, die evtl. Leerzeichen enthalten könnten müssen bei Verwendung mit Kommandos gequotet werden * standardmäßig: ''${S}, ${WORKDIR}, ${FILESDIR}, ${DISTDIR}, ${ROOT}, ${D}'' # Quoting nicht nötig, da Ergebnis eine Variable ist S=${WORKDIR}/${PN} # Quoting nötig, da der Pfad u.U. Leerzeichen enthält cd "${S}" || die * möglichst eine metadata.xml anlegen mit Informationen, wer das Paket im Overlay betreut und welche Useflags verwendet werden. Die E-Mail-Adressen der Betreuer werden in der [[https://gitlab.fem-net.de/gentoo/fem-overlay-ci-tools/-/settings/ci_cd|CI-Konfiguration]] der fem-overlay-ci-tools hinterlegt, um eine automatische Zuweisung von Issues aufgrund der betroffenen Pakete zu ermöglichen. mamu@fem.tu-ilmenau.de Max Mustermann Support for backing up on FTPS * Manifest erstellen mit pkgdev oder RepoMan: * ''pkgdev manifest'' * ''repoman manifest'' * RepoMan zur Prüfung des Ebuilds verwenden * ''repoman full -dx'' (Prüft alle Ebuilds im aktuellen Verzeichnis) * pkgdev oder RepoMan zum commiten benutzen * ''repoman commit'' * ''pkgdev commit'' * pkgcheck zur Prüfung des Ebuilds verwenden * ''pkgcheck scan'' (prüft Ebuilds im aktuellen Verzeichnis auf gängige Konventionen und Fehler) (Ideen aus den [[http://overlays.gentoo.org/proj/sunrise/wiki/CodingStandards|Coding-Standards des Sunrise-Overlays]].) Das Overlay wird bei Änderungen u.A. mittels [[https://wiki.gentoo.org/wiki/Repoman|Repoman]] und pkgcheck per CI-Pipeline geprüft. Zudem werden ebuilds per [[https://blogs.gentoo.org/ago/2020/07/04/gentoo-tinderbox/|Tinderbox]] gebaut und Fehler gemeldet. **Sämtliche Pakete müssen erfolgreich die CI-Pipeline durchlaufen, um akzeptiert zu werden.** ==== Historie ==== * ca. 2008 - Das Overlay wurde angelegt * 2017-11-23 - Migration auf Git * 2018-03-23 - Aufnahme in overlays.gentoo.org * 2021-07-29 - Erste Arbeiten an der Umstellung auf den neuen Upstream https://gitlab.fem-net.de/gentoo/fem-overlay * 2021-08-02 - Änderung des Upstream-Repos für ''api.gentoo.org'' auf GitHub * 2021-08-13 - Das Overlay benutzt nun das GitLab als Upstream-Repository