Contrib
aus openSUSE, der freien Wissensdatenbank
Inhaltsverzeichnis |
Contrib: Das universale openSUSE-Paketdepot für Drittpakete
Vision oder Was wir wollen
Das aktuelle Modell der Drittpakete im Build Service, also der von Dritten erstellten Pakete, ist kompliziert zu nutzen. Es gibt haufenweise Pakete, verteilt über hunderte Build Service Projekte, was einige Probleme mit sich bringt. Es lässt sich nicht einfach durch die Depots navigieren, Pakete sind mehrfach vorhanden, Depots sind nicht auf Kompatibilität mit anderen Depots getestet. Die richtige Lösung wäre es, alle Pakete in Factory zu haben. Das ist aber keine Option, da ein Paket für Factory einen bei Novell angestellten Betreuer benötigt, um Aktualisierungen zu garantieren.
Das Ziel ist, ein universelles Paketdepot für Pakete von Dritten zu haben. Dieses Paketdepot wird als von der Gemeinschaft betriebene Erweiterung von Factory angesehen, mit allen zugehörigen Standards und Einschränkungen.
Regeln oder Was wir machen
Im allgemeinen unterliegt Contrib den selben Regeln wie Factory, wie Veröffentlichungsfristen usw.
Regeln für das Paketdepot
- Alles wird gegen die openSUSE-Basis oder gegen Pakete aus diesem Depot gebaut.
- Kein Duplikate von Paketen aus Factory.
- Bei der Veröffentlichung von openSUSE wird das Paketdepot abgezweigt (openSUSE:Factory:Contrib -> openSUSE:<Version>:Contrib).
- Nach der Abzweigung sind keine Versionsaktualisierungen mehr erlaubt.
- Fehlerbehebungen werden als Patches auf die Pakete angewandt.
Regeln für die Pakete
- Pakete müssen einen Paketbetreuer haben, der sich um die folgenden Dinge kümmert:
- Paketaktualisierungen
- Betreuung von Paketen (Fehler beheben, mit dem Quellprojekt an Fehlern zusammenarbeiten, usw.)
- Sicherheitsaktualisierungen (Das SuSE Security Team wird einem dabei zur Seite stehen)
- Beta-Tests während der openSUSE-Beta-Phase
- Pakete müssen den Contrib-Prüfungsprozess durchlaufen.
- Keine (Datei-) Konflikte mit Factory-Paketen
Berechtigungen oder Wer macht was
Um sicherzustellen, dass wir den oben aufgestellten Regeln folgen, brauchen wir einen Satz von Berechtigungen für das Paketdepot und für die darin enthaltenen Pakete. Dafür benötigen wir zwei Rollen. Den Betreuer (Maintainer), der für ein oder mehrere Pakete verantwortlich ist, und die Kontrolleure (Reviewer), die für das Depot selbst verantwortlich sind.
openSUSE:Factory:Contrib
- Das Paketdepot gehört den Kontrolleuren
- Das Einreichen neuer Pakete geschieht über osc submitreq und durchläuft eine Anfangsprüfung.
- Depot-bugowner ist opensuse-contrib@opensuse.org
- Pakete gehören den Betreuern
- Die Entwicklung der Pakete passiert einfach, ohne zusätzliche Prüfungen.
- Paket-bugowner ist der Betreuer
openSUSE:<Version>:Contrib
- Das Paketdepot gehört den Kontrolleuren
- Keine neuen Pakete
- Depot-bugowner ist opensuse-contrib@opensuse.org
- Pakete gehören den Kontrolleuren
- Alles passiert über osc submitreq und durchläuft eine Prüfung.
- Paket-bugowner ist der Betreuer
Prozesse oder Wie wir es machen
Es gibt auch einen alternativen Ansatz: das Kommando osc-contrib.
Neue Pakete in openSUSE:Factory:Contrib
- Josef Paketbauer will das Paket foo im Contrib-Paketdepot betreuen.
- Josef Paketbauer erstellt das Paket in seinem home-Paketdepot (oder in jedem anderen Paketdepot zu dem er Schreibzugriff hat)
- Josef Paketbaur versucht sein paket gegen Contrib zu bauen, um zu prüfen, ob er nicht irgendeine Abhängigkeit oder private Einstellung in prjconf vergessen hat.
$ osc build --debug --alternative-project openSUSE:Factory:Contrib standard [<arch>]
- Nachdem Josef Paketbauer denkt, sein Paket sei in einem ausreichend guten Zustand, sendet er mit osc eine Übertragungsanfrage (submitrequest) an das Contrib-Paketdepot.
$ osc submitreq create X11:windowmanagers blackbox openSUSE:Factory:Contrib blackbox -m "add blackbox"
- Eine E-Mail wird an opensuse-contrib@opensuse.org versandt (die wie http://en.opensuse.org/User:Hennevogel:Tmp aussehen wird)
- Ein Contrib-Kontrolleur antwortet an die Mailingliste, dass er die Prüfung übernehmen wird (und sperrt es, so dass wir keine doppelte Arbeit leisten)
- Der Contrib-Kontrolleur akzeptiert die Einreichung entweder
$ osc submitreq accept 6001 --message="reviewed ok. You are now maintainer of foo in Contrib"
oder er lehnt sie ab
$ osc submitreq decline 6001 --message="Sorry. Declined. Fix the Factory build errors first. If you need help lets talk on opensuse-contrib :)"
- Als letzten Schritt setzt der Kontrolleur den Einreichenden als Betreuer und Bugowner für das Paket.
$ osc meta pkg -e openSUSE:Factory:Contrib blackbox <person userid="jpack" role="maintainer"/> <person userid="jpack" role="bugowner"/>
Bugfixes für Pakete in openSUSE:Factory:Contrib
- Josef Paketbauer checkt das Paket aus openSUSE:Factory:Contrib aus.
$ osc co openSUSE:Factory:Contrib blackbox
- Josef Paketbauer nimmt seine Änderungen vor und checkt das Paket wieder ein.
$ osc ci -m 'fixed bug in init script'
Bugfixes für Pakete in openSUSE:<Version>:Contrib
- Josef Paketbauer zweigt das Paket von openSUSE:<Version>:Contrib ab.
$ osc branch openSUSE:11.1:Contrib blackbox
- Josef Paketbauer kann das Paket nur aus seinem Branch-Bereich auschecken und daran arbeiten.
$ osc co home:jpak:branches:openSUSE:11.1:Contrib/blackbox
- Sobald Josef Paketbauer denkt das Problem behoben zu haben, überträgt er das Paket.
$ osc ci -m "fixed serious bug"
- Nachdem alles gebaut wurd stellt Josef wieder eine Übertragungsanfrage für openSUSE:<Version>:Contrib
$ osc sr create -m 'fixed serious bug'
- Eine E-Mail wird an opensuse-contrib@opensuse.org versandt (die wie http://en.opensuse.org/User:Hennevogel:Tmp aussehen wird)
- Ein Contrib-Kontrolleur antwortet an die Mailingliste, dass er die Prüfung übernehmen wird (und sperrt es, so dass wir keine doppelte Arbeit leisten)
- Der Contrib-Kontrolleur akzeptiert die Einreichung entweder
$ osc submitreq accept 6002 --message="reviewed ok. Update is released"
oder lehnt sie ab
$ osc submitreq decline 6002 --message="Sorry. Declined. There is another buffer overflow in main.c line 155"
Sicherheitsfehler in Paketen in openSUSE:<Version>:Contrib
- Das gleiche wie oben, nur das der Fehlermelder das SUSE Security Team sein wird.
Mailingliste oder Wen man fragen kann
Unsere Liste ist: opensuse-contrib@opensuse.org
Auf der Seite Mailinglisten erfahren Sie, wie Sie sich anmelden können und wie man allgemein mit openSUSE-Mailinglisten umgeht.
Häufig gestellte Fragen
- F: Wollen wir ein contrib-(staging|beta|unstable|experimental|testing)-Paketdepot haben, in dem Pakete einigen Tests unterzogen werden, bevor sie in Contrib landen?
- A: Grundsätzlich bevorzuge ich es, unstabiles/experimentelles Zeug entweder im Quellprojekt oder im OBS des Nutzers zu haben, nicht in Contrib. Nachdem das Paket stabil ist, kann eine Anfrage zur Übermittlung gestellt werden.
- F: Nennen Sie doch bitte einen Veröffentlichungszyklus (Einfrieren, Ankündigen, usw. ...)
- A: "Contrib" wird synchron zu den Veröffentlichungszyklen von Factory sein. Es wird während openSUSEs Alpha-Phase entwickelt und befindet sich während openSUSEs Beta-Tests ebenfalls in einer Beta-Testphase. Das Einfrieren von Factory betrifft auch "Contrib".
- F: Wo ist das Contrib-Paketdepot?
- A: Das Basisverzeichnis des Depots ist hier: http://download.opensuse.org/repositories/openSUSE:/Factory:/Contrib/
- F: Wie binde ich das Contrib-paketdepot in mein openSUSE ein?
- A: Für openSUSE 11.1 nutzen Sie:
zypper ar http://download.opensuse.org/repositories/openSUSE:Factory:Contrib/openSUSE_11.1 openSUSE:Factory:Contrib:openSUSE_11.1
- A: Für openSUSE Factory nutzen Sie:
zypper ar http://download.opensuse.org/repositories/openSUSE:Factory:Contrib/standard openSUSE:Factory:Contrib
- F: Aber ich mag Factory nicht, es hat so viele Aktualisierungen. Gibt es keine Rückportierungen?
- A: Ja, das Contrib wird für openSUSE 11.1 gebaut, da wir eine einfachere Anpassung und Prüfung von Contrib anbieten wollen. Berücksichtigen Sie, dass Factory (11.2) ein Hauptziel ist, so ist es keine "Rückportierung", sondern nur ein anderes Bauziel.


