WAS IST DAS DARWIN PORTS SYSTEM

    DarwinPorts ist eine Infrastruktur zum Kompilieren, Installieren und
    Paketisieren von Software, entwickelt, um die gleiche Funktionalitaet wie
    das FreeBSD Ports-System zu bieten und gleichzeitig erweiterbar zu bleiben.

    DarwinPorts laeuft zur Zeit auf MacOS X 10.2 (Darwin 6.0) und MacOS X 10.3, ist 
	aber auf Portierbarkeit ausgelegt. Implementiert ist DarwinPorts in TCL mit einigen 
    TCL-Erweiterungen, die in C geschrieben sind.

	Der "DarwinPorts User Guide" ist online verfuegbar unter der Adresse:
	http://darwinports.opendarwin.org/docs

    In base/doc/INTERNALS ist eine detaillierte Beschreibung der Architektur 
    zu finden.

    DarwinPorts ist in zwei Bestandteile aufgeteilt. Die "DarwinPorts Infrastruktur",
    die im Unterverzeichniss base/ liegt, und das "dports/"-Verzeichniss, welches
    die Metadaten zu der verfuegbaren, portierten Software enthaelt.

INSTALLATION

	Die Datei base/doc/README.platforms enthaelt plattform-spezifische Hinweise zur
	Installation von DarwinPorts auf nicht Darwin-basierten Betriebsystemen.

    Installations-Schritte:
    
	1. cd base/
	   ./configure
		In das base/ Verzeichniss wechseln und das ./configure Skript aufrufen. Optional
		koennen dem configure-Skript Parameter mitgeben (siehe unten)

	2. make
		'make' aufrufen, um die DarwinPorts Infrastruktur zu kompilieren. Um 

	3. sudo make install
		'sudo make install' aufrufen, um die in Schritt 1 kompilierte Infrastruktur

	4. [optional] /etc/ports/ports.conf editieren
		Die Haupt-Konfigurationsdatei fuer DarwinPorts heisst 'ports.conf' und 
		liegt im Verzeichniss '/etc/ports'. In der Konfigurationsdatei ist festgelegt, 
		unterhalb welchem Verzeichnisses (Prefix) Software aus den DarwinPorts installiert
		wird und wo DarwinPorts-spezifische Daten gespeichert werden:
    
		portdbpath - legt fest wo DarwinPorts-spezifische Daten gespeichert werden.
		prefix - legt das Verzeichniss fest, wo DarwinPorts-Software installiert wird.

	5. [optional] /etc/ports/sources.conf editieren
		In der Datei '/etc/ports/sources.conf' wird angegeben, wo
		das 'dports/'-Verzeichniss liegt. Dieses muss angepasst werden,
		damit das DarwinPorts System benutzt werden kann! Falls das Argument 
		--with-dports-dir=DIR beim Aufrufen des ./configure-Skript angegeben wurde,
		wurde dies Verzeichniss der sources.conf hinzugefuegt, ansonsten wurde
		das default-Verzeichniss (darwinports/dports innerhalb des Installations 
		Verzeichnisses) hinzugefuegt.

    Die DarwinPorts Infrastruktur wird an folgenden Stellen installiert:
	[Mac OS X 10.2] /System/Library/Tcl/darwinports1.0
	[Mac OS X 10.3] /Library/Tcl/darwinports1.0
	[FreeBSD] /usr/local/lib/tcl8.3/darwinports1.0
	    - TCL Bibliothek zum Zugriff auf das DarwinPorts System.
    
    PREFIX ist per default auf '/opt/local' gesetzt, kann aber durch das Wechseln
    in das base/-Verzeichnis und einem anschliessendem, manuellen Aufruf des ./configure-
    Skriptes, bei dem das '--prefix'-Argument angegeben wird, veraendert werden.
   
    Folgende Komponenten werden im PREFIX installiert:
     
	$PREFIX/bin/port
	    - Kommandozeilen Utility zum Managen von DarwinPorts.
	$PREFIX/share/darwinports/
        - interne TCL Bibliotheken fuer das DarwinPorts System.

	Folgende Konfigurations-Dateien werden verwendet:

	/etc/ports/ports.conf
		- allgemeine Konfigurationsdatei
	/etc/ports/sources.conf
	    - enthaelt Pfade zu dports/-Verzeichnissen

DAS PORT KOMMANDO BENUTZEN
    
    Falls noch nicht geschehen, sollte /opt/local/bin der 'path'-Variablen
    hinzugefuegt werden (oder $PREFIX/bin, falls das Prefix explizit bei
    der Installation angegeben wurde).

    Falls Jaguar (OS X 10.2) verwendet wird, folgende Zeile der Datei 
    '~/.cshrc' hinzufuegen (gilt fuer alle (t)csh Benutzer):

    set path=($path /opt/local/bin)

	Falls Panther (OS X 10.3) verwendet wird, folgende Zeile der Datei
	'~/.profile' hinzufuegen (gilt fuer alle sh/bash Benutzer):

	export PATH=$PATH:/opt/local/bin

    Aenderungen an der ~/.cshrc werden erst beim Starten einer neuen Shell
    beruecksichtigt.

    Folgendes Kommando kompiliert und installiert einen Port:

	port install <portname>

    Um einen bestimmen Port zu finden, kann man 'port search' verwenden:

	port search vi

    Die Man-Page des 'port'-Kommandos listet alle verfuegbaren Befehle auf.
    Desweiteren ist es moeglich, Aktionen (z.B. kompilieren oder herunterladen)
    fuer alle vorhandenen Ports mittels des 'portall'-Kommandos auszufuehren.
    Das 'portall'-Kommando verarbeitet alle Aktionen wie das 'port'-Kommando,
    mit dem Unterschied, dass es iterativ alle ports im dports/-Verzeichniss
    abarbeitet. 

ERSTELLEN VON NEUEN PORTS

    Ports bestehen aus einem Verzeichniss mit einem 'Portfile' und dazugehoerigen
    Dateien. Zur Zeit sind die einzigen Dateien, ausser dem 'Portfile', Patches.

    Ein Portfile besteht auf gueltigem TCL, interpretiert von einem TCL-Interpreter,
    der vom DarwinPorts-System gestartet wird. Portfiles benutzen eine key/value
    Syntax, geben dem Portfile-Autor aber gleichzeitig die kompletten Moeglichkeiten 
    von TCL.
    
    Einen guten Einstieg in das Erstellen von Ports gibt die Man-Page portfile(7),
    base/doc/exampleport und http://ww.opendarwin.org/projects/darwinports/en/portfileHOWTO.php.
