Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Commits on Nov 21, 2011
  1. Schritt 4: Nacharbeiten

    authored
    Beim rumspielen mit dem Port ist mir dann aufgefallen das die manpage nicht zu
    den tats�chlichen Gegebenheiten passt. Wie bereits gesagt trennt FreeBSD
    Drittanbietersoftware strikt vom Basissystem.  Das gilt auch f�r die
    Konfigurationsdateien die bei einem Standardsystem in `/usr/local/etc` landen
    statt in `/etc`. Das sollte sich entsprechend in der manpage wiederspiegeln.
    
    Dieses Ziel erreichen wir in zwei Schritten. Erstmal legen wir ein Patchfile an
    welches den Platzhalter `%%PREFIX%%` in die manpage einf�gt. Danach ersetzen wir
    diesen Platzhalter im `post-patch` Target mit dem tats�chlichen Wert von
    `${PREFIX}`.
  2. Schritt 3: Zum installieren und deinstallieren bewegen

    authored
    Nachdem der Port gebaut werden kann muss er jetzt noch installiert werden.
    
    Das im Makefile von `i3status` vorhandene `install` Target ist nicht auf FreeBSD
    anwendbar da FreeBSD die Ports strikt vom Basissystem trennt. Es w�re m�glich
    das Makefile entsprechend zu patchen, aber in diesem Fall ist es einfacher
    das `do-install` Target des Ports mit einer eigenen Installationsroutine zu
    �berschreiben. Zu diesem Zweck werden wieder einige durch das Portsystem
    vordefinierte Variablen, sowie die durch das Portsystem vordefinierten
    `INSTALL_*` Makros, verwendet.
    
    Au�erdem m�ssen die durch den Port installierten Dateien dem Portssystem bekannt
    gemacht werden damit diese bei einer Deinstallation wieder entfernt werden
    k�nnen. Bei gr��eren Ports wird daf�r eine Datei namens `pkg-plist` (die
    packagelist) angelegt. In diesem Fall verwenden wir die einfachere Methode und
    verwenden - mal wieder - einige vordefinierte Variablen.
    
    Nach diesen Anpassungen l�sst sich der Port durch `make install` installieren
    und entsprechend durch `make deinstall` wieder deinstallieren. Au�erdem ist es
    m�glich ein Bin�rpaket mittels `make package` zu erstellen.
  3. Schritt 2: Zum Bauen �berreden

    authored
    Nachdem das distfile heruntergeladen und entpackt werden kann ist es nun an der
    Zeit `i3status` zum Bauen zu �berreden. Nach einer kurzen Inspektion des
    Makefiles von `i3status` sind keine Probleme zu erwarten. Bei der Gelegenheit
    f�llt aber schon mal auf das wir das `install` Target nicht gebrauchen k�nnen,
    aber wir sind ja auch erst beim Bauen.
    
    Die Anpassungen die notwendig sind um `i3status` zum Bauen zu �berreden sind
    �berschaubar.
    
    Als erstes muss wie bei gef�hlt 90% der Ports dem Portsystem mitgeteilt werden
    das der Port gerne mit `GNU make` gebaut werden m�chte (FreeBSD hat sein eigenes
    `make` das eine etwas andere Syntax hat). Die Angabe `USE_GMAKE=yes` tut das und
    legt bei der Gelegenheit auch gleich die passende build-Abh�ngigkeit an.
    
    Als weitere Abh�ngig wird die Bibliothek `libConfuse` ben�tigt welche
    gl�cklicherweise schon als Port im FreeBSD Portstree vorliegt.
    
    Nachdem noch die `CFLAGS` und `LDFLAGS` korrekt angepasst wurden baut der Port
    nach der Eingabe von `make build` fehlerfrei durch.
  4. Schritt 1: Download erm�glichen

    authored
    Als erstes muss dem FreeBSD Portsystem der neue Port bekannt gegeben werden.
    Dazu werden einige vom Portsystem bereitgestellte Variablen gef�llt. Das
    Portsystem versucht alle Informationen die es braucht um das distfile (den
    tarball in dem der Quellcode liegt) herunter zu laden aus diesen Informationen
    zusammen zu basteln. Im Fall von `i3status` funktioniert das problemlos da
    upstream alle g�ngigen Konventionen welche die Benamung von Release tarballs
    betreffen eingehalten wurden.
    
    Nachdem das Makefile angelegt und entsprechend gef�llt wurde l�dt das
    Portsystem nach Eingabe von `make fetch` automatisch das distfile herunter.
    
    Die Datei `distinfo` enth�lt Pr�fsummen f�r das Distfile und wird per `make
    makesum` automatisch erstellt.
    
    Nun l�sst sich sich das distfile durch die Eingabe von `make extract` entpacken.
    
    Die Datei `pkg-descr` enth�lt einfach nur eine klartextliche Beschreibung f�r
    den Anwender und wird traditionsgem�� von der Upstream-Webseite des zu
    portierenden Programms kopiert.
    
    Die Datei `README.markdown` hat hier nichts verloren...
Something went wrong with that request. Please try again.