[OpenBSD]

Anonymous CVS


Was ist Anonymous CVS?

Anonymous CVS ist eine Methode, um die lokalen Kopien deines OpenBSD Source-trees auf dem laufenden zu halten in bezug auf die Veränderungen, die an den aktuellen OpenBSD-Quellcodes (current) gemacht werden. Zusätzlich ist es möglich der Entwicklung ganz dicht auf den Fersen zu folgen, desweiteren kann man den Patches einer bestimmten Version folgen.

Der Hauptvorteil von Anonymous CVS gegenüber anderen Update-Techniken ist, dass es direkt mit einem zentralen Sourcecode, oder Spiegel davon arbeitet. Das bedeutet, das du das volle Set von CVS-Kommandos zur Verfügung hast, um das Einfügen und Updaten von Quellcodes durchzuführen, und das beinhaltet auch das Bilden von sog. diffs, also Dateien, die den Unterschied zwischen zwei verschiedenen Dateien enthalten, ebenso wie das Abändern von Histories und anderen Abfragen.

Das OpenBSD-Projekt hat momentan drei Haupt-Quellcode-Lagerstätten:

Zusammenfassend kann man sagen, dass die Stärke von Anonymous CVS darin liegt, dass es ein sehr tolerantes Quellcode-Verwaltungsprogramm ist - es respektiert Veränderungen, die du an deinen lokalen Quellcodes gemacht hast und versucht alles um deine Quellcodes auf den neusten Stand zu bringen, anstatt dir eine lange Liste mit geheimnisvollen Fehlern zu hinterlassen, die beseitigt werden müssen, bevor du weitermachen kannst.

Was ist CVS?

CVS ist das Quellcode (source) Kontrollsystem, das benutzt wird, um den Quellcode-Baum (source tree) von OpenBSD zu verwalten. Das beinhaltet eine zentrale Lagerstätte für alle offiziell veröffentlichten Quellcodes und Änderungen, was den Entwicklern ermöglicht, lokale Kopien des Quellcodes mit ihren lokalen Änderungen zu verwalten. Entwickler mit "Schreibzugriff" können Änderungen direkt in den OpenBSD-Quellcode einfügen, während "Anonymous CVS" User "Lesezugriff" haben und ihre lokalen Kopien des Quellcodes auf dem laufen halten können und Anfragen an die Zentrallagerstätte (main repository) machen können.

Die Hauptstärke von CVS ist seine Fähigkeit intelligente Einfügungen von Änderungen des lokalen Quellcodes in das "central repository" oder auch umgekehrt zu machen. D.h. wenn du Änderungen an einem Modul machst und hinterher ein Update per CVS, dann werden deine Änderungen nicht "in den Wind geschossen", sondern CVS versucht alles, um Änderungen des "central repository" mit deinen lokalen in Einklang zu bringen.

Falls ein Einfügen nicht so einfach möglich ist, stellt CVS ein "soft fallback" bereit, in dem es kommentierte Änderungen an deinem lokalen Quellcode macht, eine unveränderte Kopie deines Quellcodes erzeugt und dann mit dem Rest des Updates weitermacht.

Den Anfang mit Anonymous CVS finden.

Die letzte bzw. neueste Version CVS findet sich unter: Cyclic. Versionen, die älter als 1.6 sind, sollten vermieden werden, und laufen vielleicht auch gar nicht. Wenn du OpenBSD installiert hast, ist CVS bereits integriert.

Leute, die eine OpenBSD CD besitzen, haben vielleicht schon die CVS/ Verzeichnisse darauf bemerkt. Der Grund dafür ist, dass die CD einen "checkout" des OpenBSD src Moduls enthält, von dem aus ein Updaten möglich ist. Das Benutzen dieses CVS-Baums führt zu einem wesentlich schnelleren Update, als ein komplett neuer, also frischer Checkout des vollen OpenBSD Quellcodes bzw. source tree. Es gibt zwei Wege die CD zu benutzen:

Leute, die keine CD zur Hand haben, können cvs(1) benutzen, um einen "checkout" des "source repository" zu machen. Wie das geht, erklärt der nächste Absatz.

Danach wird /usr/src ein guter Startpunkt sein, an dem alle cvs(1) Kommandos normal arbeiten werden.

CVS(1) benutzen um den Source-tree zu holen und upzudaten.

CVS wurde als einfacher Weg entworfen, um Quellcodes zu holen und auf dem aktuellen Stand zu halten, daher gibt es auch nicht viel was man tun muss, um das zu erreichen. Um zu beginnen, musst du wissen, ob du current folgen willst, oder einem patch-branch. Der "current" Zweig hat alle Änderung bis zur aktuellen Minute, während ein Patch-branch eine offzielle Version plus der dafür pasenden Patches von der errata Seite enthält. Sobald du entschieden hast, welchem "tree" du folgen willst, musst du einen Anonymous CVS server du dafür benutzen willst. Eine Lsite dieser Server gibt es weiter unten. Aber beachte, dass es nur 3 Wege gibt, um diese Server anzusprechen.

HINWEIS: - User, die ssh verwenden wollen,müssen zuerst die CVS_RSH Variable auf ssh setzen.

Nachdem du einen Anonymous CVS Server ausgewählt hast, und welche Methode du benutzen willst, kannst du damit anfangen CVS zu benutzen. Für die von euch, die eine CD haben : Ihr könnt mit dem CVS checkout auf der CD anfangen, indem ihr die oben genannte Methode benutzt, um dem Quellcode auf eure Maschinen zu bekommen. Wenn du keine CD zur Hand hast, benutze die unten aufgeführte Methode um einen "checkout" der Sourcen/Quellcodes zu machen. Diese Methode packt den Quellcode in /usr/src.

Das oben beschriebene wird einen Abgleich mit dem current source tree machen. Viele von euch werden aber nur die patch branch sources wollen. Um eben nur den Code des patch branchs zu bekommen, musst du dem Kommando ein "tag" hinzufügen. Beispiel:

Oder OPENBSD_2_7 für 2.7, etc.

Momentan enthält nur der OPENBSD_2_8 tag die Release Sources und bereits eingefügte Patches.

Verfügbare Anonymous CVS Server.

Es gibt zwei Level im Zugang zum Source tree:

Schreib-Lese-Zugriff für Entwickler:
Entwickler, die Änderungen am Source tree vornehmen müssen, brauchen einen Account auf den OpenBSD-Maschinen. Diesen Zugang zu bekommen ist eine normale Sache, wenn man erstmal eine gewisse Zeit mit anderen Entwicklern an OpenBSD mitarbeitet. Wenn jemand gute Arbeit leistet und zeigt, dass er im Team arbeiten kann, kann er auch einen Account bekommen.
Nur-Lese-Zugriff für jedermann:
Jedermann kann auf die Nur-Lese-CVS repositories zugreifen. Diese Kopien des Schreib-Lese-CVS repository werden recht oft gespiegelt. Dazu setzt du deine CVSROOT Umgebungsvariable auf einen der folgenden Werte:

Bitte beachte den Hinweis über die Benutzung von ssh vs. rsh weiter unten!

Hinweis: wenn dein Server mit unvollständigen oder falschen Informationen aufgelistet wird, bitte schreibe eine Mail an : beck@openbsd.org

Du möchtest vielleicht traceroute(8) benutzen, um den Server zu finden, der dir "leitungsmässig" am nächsten ist, zu dem also die kuerzeste Übertragungsstrecke besteht. Probleme mit dem Server sollten an den maintainer des fraglichen Servers gemailt werden.

Krypto Sourcen mit CVS(1) holen.

WICHTIGER HINWEIS: Es gibt ein paar Dinge bezüglich Kryptografie, die jedem bewusst sein sollten:

Beispiele für CVS(1).

Eine Beispielnutzung eines anoncvs-Servers wäre :