public:technik:gentoo-overlay

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
public:technik:gentoo-overlay [2018/03/23 22:30] – [Mit Layman] frainzpublic:technik:gentoo-overlay [2022/12/10 18:57] – [Regeln für erfolgreiche Ebuilds im FeM-Overlay] Hinweis zu automatischer Issue-Zuweisung eingefügt nex
Zeile 1: Zeile 1:
 ====== Gentoo: FeM-Overlay ====== ====== Gentoo: FeM-Overlay ======
 +
 +<WRAP warning 50% center>
 +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.
 +</WRAP>
 +
 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.  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. 
  
Zeile 8: Zeile 19:
 ===== Nutzung ===== ===== Nutzung =====
  
-  * URL des Overlays (git): https://bitbucket.fem.tu-ilmenau.de/scm/gentoo/fem-overlay.git+  * URL des Overlays (git): https://gitlab.fem-net.de/gentoo/fem-overlay.git 
 +    * Upstream-Repository. Alle Commits werden hier in den master gemerged. 
 +  * URL des Overlays (git, alte URL): https://bitbucket.fem.tu-ilmenau.de/scm/gentoo/fem-overlay.git 
 +    * Hinweis: das Bitbucket wird per Push-Mirror aus dem GitLab gesynct. Bitte im GitLab committen.
   * URL des Overlays (svn): http://subversion.fem.tu-ilmenau.de/repository/fem-overlay/trunk/   * URL des Overlays (svn): http://subversion.fem.tu-ilmenau.de/repository/fem-overlay/trunk/
-    * Hinweis: das Subversion wird minütlich aus dem Git-Master gesynct und ist nicht mehr schreibbar. Bitte im Git-Repo commiten.+    * Hinweis: das Subversion wird minütlich aus dem Git-Master gesynct und ist nicht mehr schreibbar. Bitte im GitLab-Repo commiten.
  
 ==== Ohne Layman über repos.conf ==== ==== Ohne Layman über repos.conf ====
 +Diese Variante bietet sich an, wenn man selber am Repository Änderungen vornehmen möchte.
 <code> <code>
 [fem-overlay] [fem-overlay]
-location = /usr/local/overlay/fem-overlay+location = /var/db/repos/fem-overlay
 sync-type = git sync-type = git
-sync-uri = https://bitbucket.fem.tu-ilmenau.de/scm/gentoo/fem-overlay.git+sync-uri = https://gitlab.fem-net.de/gentoo/fem-overlay.git
 auto-sync = yes auto-sync = yes
 </code> </code>
  
-==== Mit Layman ==== +==== Mit eselect-repository ==== 
-Für das FeM-Overlay benötigt Layman Subversion-Support:+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.
 <code> <code>
-echo "app-portage/layman subversion" >> /etc/portage/package.use/layman +eselect repository enable fem-overlay
-emerge app-portage/layman+
 </code> </code>
 +
 +==== Mit Layman ====
 +Das Overlay ist in der offiziellen Liste enthalten.
  
 Hinzufügen des Overlays Hinzufügen des Overlays
Zeile 32: Zeile 50:
 layman -a fem-overlay layman -a fem-overlay
 </code> </code>
 +
 +=== layman wieder loswerden ===
 +<code>
 +# 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
 +</code>
 +
  
 ===== Ebuilds einreichen ===== ===== Ebuilds einreichen =====
-Für einen schreibenden Zugriff braucht man ein Login im [[technik:server:jira|JIRA]] (und damit im [[technik:server:repository#bitbucket|Bitbucket]]) ([[https://jira.fem.tu-ilmenau.de/secure/Signup!default.jspa|Registrierung]]) und wendet sich dann an [[fem-overlay@technik.fem-net.de]]. 
  
-Mit einem Bitbucket-Login allein kann man aber bereits sich das [[https://bitbucket.fem.tu-ilmenau.de/projects/GENTOO/repos/fem-overlay?fork|Repo forken]], eine Änderung in einem Branch commiten und einen Pull-Request erstellenfalls man nicht vollen Schreibzugriff benötigt.+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 mergenIssues bearbeiten, etc.) kann man sich an <fem-overlay@technik.fem-net.de> wenden.
 ==== Regeln für erfolgreiche Ebuilds im FeM-Overlay ==== ==== 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]])   * 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.   * Im Files-Ordner sollen keine Archive, sondern nur Skripte und Patches liegen.
   * Alle Ebuilds besitzen einen validen Header   * Alle Ebuilds besitzen einen validen Header
 <code|Header> <code|Header>
-# Copyright 1999-2XXX Gentoo Foundation+# Copyright 1999-2XXX Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
 </code> </code>
Zeile 65: Zeile 101:
 DEPEND DEPEND
 RDEPEND RDEPEND
 +BDEPEND
  
 S S
Zeile 73: Zeile 110:
  
   * Variablen, die evtl. Leerzeichen enthalten könnten müssen bei Verwendung mit Kommandos gequotet werden   * Variablen, die evtl. Leerzeichen enthalten könnten müssen bei Verwendung mit Kommandos gequotet werden
-    * standardmäßig: ${S}, ${WORKDIR}, ${FILESDIR}, ${DISTDIR}, ${ROOT}, ${D}+    * standardmäßig: ''${S}, ${WORKDIR}, ${FILESDIR}, ${DISTDIR}, ${ROOT}, ${D}''
  
 <code|Beispiel> <code|Beispiel>
Zeile 80: Zeile 117:
  
 # Quoting nötig, da der Pfad u.U. Leerzeichen enthält # Quoting nötig, da der Pfad u.U. Leerzeichen enthält
-cd "${S}"+cd "${S}" || die
 </code> </code>
  
-  * möglichst eine metadata.xml anlegen mit Informationen, wer das Paket im Overlay betreut und welche Useflags verwendet werden+  * 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.
 <file|Beispiel für metadata.xml> <file|Beispiel für metadata.xml>
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
Zeile 97: Zeile 134:
 </pkgmetadata> </pkgmetadata>
 </file> </file>
 +  * Manifest erstellen mit pkgdev oder RepoMan:
 +    * ''pkgdev manifest''
 +    * ''repoman manifest''
   * RepoMan zur Prüfung des Ebuilds verwenden   * RepoMan zur Prüfung des Ebuilds verwenden
-    * Verwendung: +      ''repoman full -dx'' (Prüft alle Ebuilds im aktuellen Verzeichnis) 
-      * //**repoman manifest**// (Erstellt Manifest neu) +  * pkgdev oder RepoMan zum commiten benutzen 
-      * //**repoman**// (Prüft alle Ebuilds im aktuellen Verzeichnis) +      * ''repoman commit'' 
-      * //**repoman commit**// (Erstellt einen Commit und fügt Metainformationen hinzu, falls die Prüfung erfolgreich war)+      ''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]].) (Ideen aus den [[http://overlays.gentoo.org/proj/sunrise/wiki/CodingStandards|Coding-Standards des Sunrise-Overlays]].)
  
-Das Overlay wird bei Änderungen mittels [[https://wiki.gentoo.org/wiki/Repoman|Repoman]] [[https://bamboo.fem.tu-ilmenau.de/browse/OVERLAY-CHECK|überprüft]].+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 ==== ==== Historie ====
   * ca. 2008 - Das Overlay wurde angelegt   * ca. 2008 - Das Overlay wurde angelegt
   * 2017-11-23 - Migration auf Git   * 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
  • public/technik/gentoo-overlay.txt
  • Zuletzt geändert: 2022/12/12 10:07
  • von nex