Modula-3 CVS SSH Zugriff @ elego Software Solutions

Der Modula-3-Quellcode der PM3- und CM3-Distributionen steht unter CVS-Kontrolle in CVS-Repositorien auf dem Server modula3.elegosoft.com. CVS ist ein Client/Server-basiertes Versionskontrollsystem, das benutzt wird, um alle Änderungen und meherere unabhängige Entwicklungslinien zu verwalten sowie die Arbeit mehrerer Entwickler zu koordinieren.

CVS benutzt sogenannte workspaces und gleichzeitiges Arbeiten an voneinander unabhängigen Änderungen. Jeder Entwickler kopiert sich die Quellen, an denen er interessiert ist, durch eine cvs checkout Operation in seinen Workspace, wo er sodann unabhängig von anderen seine Änderungen durchführt. Arbeitsergebnisse werden dem Repositorium durch eine cvs commit Operation hinzugefügt; die Arbeit anderer Enwickler oder Entwicklungslinien kann mittels cvs update in den Workspace geholt werden (wobei lokale Änderungen immer mit eingebaut werden). Konfiguration können mit CVS tags erzeugt werden.

Falls Sie mit CVS nicht vertraut sind informieren Sie sich auf der CVS-Projekthomepage. Eine Kurzbeschreibung der einzelnen CVS-Befehle finden Sie in der Unix Manual Page (man cvs)

Jede(r), die/der an CM3 und PM3 (mit)arbeiten will, kann Schreibzugriff auf die CVS-Datenbank erhalten. Dazu muss nur ein SSH-Schlüssel (vorzugsweise DSA für Version 2 OpenSSH) hinterlegt werden. Schicken Sie einfach eine E-Mail an m3-support{at}elego.de falls Sie interessiert sind, und lesen Sie bitte die CM3 Configuration Management Rules.

Jede(r), die/der mit den CVS Repositorien für CM3 oder PM3 direkt arbeiten will, benötigt SSH-Zugriff auf den Server modula3.elegosoft.com. Wir müssen einen Benutzeraccount für Sie anlegen, der es Ihnen ermöglicht, Änderungen an den CVS-Repositorien über das CVS-Protokoll, das durch SSH getunnelt wird, vorzunehmen. Dies mag ein wenig kompliziert klingen, ist aber derzeit die einzige empfehlenswerte sichere Zugriffsmethode. Falls Sie sich mit SSH nicht auskennen, lesen Sie entweder die Handbuch-Seiten auf Ihrem Unix-System (man ssh) oder informieren sich auf der Open SSH Homepage.

SSH benutzt Paare von privaten und öffentlichen Schlüsseln (public/private key pairs) für die Authentifizierung und verschlüsselt alle Datenpakete über das Internet. Das erste, was Sie benötigen, ist also ein SSH-Schlüsselpaar für das Protokoll 2 (DSA). Dies wird normalerweise erzeugt durch

  ssh-keygen -t dsa
    

Dadurch werden die Dateiebn ${HOME}/.ssh/id_dsa (private key) und ${HOME}/.ssh/id_dsa.pub (public key) erzeugt. Die Zugriffsberechtigungen von ${HOME}/.ssh dürfen niemandem außer dem Eigentümer das Schreiben erlauben, die Berechtigungen für den privaten Schlüssel dürfen Schreiben und Lesen nur dem Eigentümer erlauben (0600). Der private Schlüssel wird auf Ihrem Arbeitsplatzrechner benutzt werden und darf niemandem außer Ihnen zugänglich sein; der öffentliche Schlüssel wird von uns in der Datei ${HOME}/.ssh/authenticated_keys auf dem Serverrechner abgelegt werden. Sie sollten außerdem eine passphrase benutzen, um Ihren Schlüssel zu sichern, und können sich des Programms ssh-agent bedienen, um diese passphrase nicht mehr als einmal eingeben zu müssen. Bitte lesen Sie die entsprechenden Handbuchseiten (man ssh, man ssh-keygen, man ssh-agent).

Nehmen wir an Ihr Benutzername ist harry, und Sie haben ein DSA-Schlüsselpaar erzeugt, uns den öffentlichen Schlüssel zugeschickt, und wir haben einen Account für Sie erzeugt. Sie sollten dann in der Lage sein, Kommandos auf dem Serverrechner auszuführen, z.B. sich Ihre Identifikation anzeigen lassen:

  % ssh modula3.elegosoft.com id
  uid=1105(harry) gid=1105(harry) \
  groups=1105(harry),216(cvs),200(m3), \
  201(cmmagazin),400(cmmag),401(contrib)
    

Sollte das nicht funktionieren, benutzen Sie bitte die -v Option von ssh um den Fehler zu lokalisieren und senden uns die Ausgaben zu. Sie können die -v Option mehrmals verwenden, um die Detailliertheit der Ausgaben zu erhöhen.

Wenn alles funktioniert, können Sie jetzt CVS benutzen, um auf die CVS-Repositorien zuzugreifen. Sie müssen die Umgebungsvariable CVS_RSH setzen, damit CVS auch SSH als Transportservice nutzt, und entweder die cvs -d Option verwenden, oder die Umgebungsvariable CVSROOT setzen, zum Beispiel

  CVS_RSH=ssh
  CVSROOT=:ext:harry@modula3.elegosoft.com:/usr/cvs
  export CVS_RSH CVSROOT
    

Bitte beachten Sie, dass der Pfad für das CM3-Repositorium /usr/cvs ist, für das PM3-Repositorium aber /usr/cvs/pm3.

Sie können nun probehalber einige Dateien in Ihren Workspace holen:

  cvs -z3 checkout cm3/scripts
    

Die Option -z3 setzt den Kompressionsgrad auf drei, was für die meisten Verbindungen eine sinnvolle Einstellung sein sollte. Wenn das wie gewünscht funktioniert, können Sie fortfahren, alle Dateien, die Sie interessieren in Ihren Workspace zu kopieren, z.B. die vollständige CM3-Distribution:

  cd cm3
  cvs -z3 update -dAP
    

Sollten Sie auf Fehler oder Probleme stoßen, die Sie nach einem Studium der umfangreichen Dokumentation nicht beseitigen können, wenden Sie sich bitte per E-Mail an uns.