Das FreeBSD Porter-Handbuch
Zurück | Kapitel 6. Besonderheiten | Weiter

# 6.7. Benutzung von X11

## 6.7.1. X.Org-Komponenten

Die X11-Implementierung, welche die Ports-Sammlung bereitstellt, ist X.Org. Wenn Ihre Applikation von X-Komponenten abhängt, listen Sie die benötigten Komponenten in `USE_XORG` auf. Als dies geschrieben wurde, wurden die folgenden Komponenten bereitgestellt:

`bigreqsproto compositeproto damageproto dmx dmxproto evieproto fixesproto fontcacheproto fontenc fontsproto fontutil glproto ice inputproto kbproto libfs oldx printproto randrproto recordproto renderproto resourceproto scrnsaverproto sm trapproto videoproto x11 xau xaw xaw6 xaw7 xaw8 xbitmaps xcmiscproto xcomposite xcursor xdamage xdmcp xevie xext xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86rushproto xf86vidmodeproto xfixes xfont xfontcache xft xi xinerama xineramaproto xkbfile xkbui xmu xmuu xorg-server xp xpm xprintapputil xprintutil xpr oto xproxymngproto xrandr xrender xres xscrnsaver xt xtrans xtrap xtst xv xvmc xxf86dga xxf86misc xxf86vm`.

Die aktuelle Liste finden Sie immer in `/usr/ports/Mk/bsd.xorg.mk`.

Das Mesa Projekt ist ein Versuch, eine freie OpenGL Implementierung bereitzustellen. Sie können eine Abhängigkeit von verschiedenen Komponenten diese Projektes in der Variable `USE_GL` spezifizieren. ouml;gliche Optionen sind: `glut, glu, glw, glew, gl` und `linux`. Für Abwärtskompatibilität gilt der Wert `yes` als `glu`.

Beispiel 6-1. Beispiel für USE_XORG

    USE_XORG=   xrender xft xkbfile xt xaw
    USE_GL=     glu

Viele Ports definieren `USE_XLIB`, was dafür sorgt, dass der Port von allen (rund 50) Bibliotheken abhängt. Diese Variable existiert, um Abwärtskompatibilität sicherzustellen (sie stammt noch aus der Zeit vor dem modularem X.Org), und sollte bei neuen Ports nicht mehr benutzt werden.

Tabelle 6-5. Variablen für Ports, die X benutzen

`USE_XLIB` | Der Port benutzt die X-Bibliotheken. Soll nicht mehr verwendet werden - benutzen Sie stattdessen eine Liste von Komponenten in `USE_XORG`.
`USE_X_PREFIX` | Soll nicht mehr benutzt werden, ist jetzt äquivalent zu `USE_XLIB` und kann einfach durch letzteres ersetzt werden.
`USE_IMAKE` | Der Port benutzt `imake`. Impliziert `USE_X_PREFIX`.
`XMKMF` | Ist auf den Pfad zu `xmkmf` gesetzt, wenn nicht in `PATH`. Vorgabe ist `xmkmf -a`.

Tabelle 6-6. Variablen bei Abhängigkeit von einzelnen Teilen von X11

`X_IMAKE_PORT` | Ein Port, der `imake` und einige andere Werkzeuge, die zum Erstellen von X11 benutzt werden, bereitstellt.
`X_LIBRARIES_PORT` | Ein Port, der die X11-Bibliotheken bereitstellt.
`X_CLIENTS_PORT` | Ein Port, der X11-Clients bereitstellt.
`X_SERVER_PORT` | Ein Port, der den X11-Server bereitstellt.
`X_FONTSERVER_PORT` | Ein Port, der den Fontserver bereitstellt.
`X_PRINTSERVER_PORT` | Ein Port, der den Printserver bereitstellt.
`X_VFBSERVER_PORT` | Ein Port, der den virtuellen Framebuffer-Server bereitstellt.
`X_NESTSERVER_PORT` | Ein Port, der einen nested X-Server bereitstellt.
`X_FONTS_ENCODINGS_PORT` | Ein Port, der Kodierungen für Schriftarten bereitstellt.
`X_FONTS_MISC_PORT` | Ein Port, der verschiedene Bitmap-Schriftarten bereitstellt.
`X_FONTS_100DPI_PORT` | Ein Port, der 100dpi Bitmap-Schriftarten bereitstellt.
`X_FONTS_75DPI_PORT` | Ein Port, der 75dpi Bitmap-Schriftarten bereitstellt.
`X_FONTS_CYRILLIC_PORT` | Ein Port, der kyrillische Bitmap-Schriftarten bereitstellt.
`X_FONTS_TTF_PORT` | Ein Port, der TrueType®-Schriftarten bereitstellt.
`X_FONTS_TYPE1_PORT` | Ein Port, der Type1-Schriftarten bereitstellt.
`X_MANUALS_PORT` | Ein Port, der entwicklerorientierte Manualpages bereitstellt.

Beispiel 6-2. Benutzung von X11-bezogenen Variablen in einem Port

    # Port benutzt X11-Bibliotheken und hängt vom Font-Server sowie
    # von kyrillischen Schriftarten ab.
    RUN_DEPENDS=   ${LOCALBASE}/bin/xfs:${X_FONTSERVER_PORT} \
                   ${LOCALBASE}/lib/X11/fonts/cyrillic/crox1c.pcf.gz:${X_FONTS_CYRILLIC_PORT}

    USE_XORG=      x11 xpm

## 6.7.2. Ports, die Motif benötigen

Wenn Ihr Port eine Motif-Bibliothek benötigt, definieren Sie `USE_MOTIF` im `Makefile`. Die Standard-Motif-Implementierung ist `x11-toolkits/open-motif`. Benutzer können stattdessen `x11-toolkits/lesstif` wählen, indem Sie die `WANT_LESSTIF`-Variable setzen.

Die Variable `MOTIFLIB` wird von `bsd.port.mk` auf die entsprechende Motif-Bibliothek gesetzt. Bitte patchen Sie den Quelltext Ihres Ports, sodass er überall `${MOTIFLIB}` benutzt, wo die Motif-Bibliothek im Original `Makefile` oder `Imakefile` referenziert wird.

Es gibt zwei verbreitete Fälle:

- Wenn sich der Port in seinem `Makefile` oder `Imakefile` auf die Motif-Bibliothek als `-lXm` bezieht, ersetzen Sie das einfach durch `${MOTIFLIB}`.

- Wenn der Port in seinem `Imakefile` `XmClientLibs` benutzt, ersetzen Sie das durch `${MOTIFLIB} ${XTOOLLIB} ${XLIB}`.

Anmerkung: `MOTIFLIB` expandiert (normalerweise) zu `-L/usr/X11R6/lib -lXm` oder `/usr/X11R6/lib/libXm.a` - d.h. Sie müssen kein `-L` oder `-l` davor einfügen.

## 6.7.3. X11 Schriftarten

Wenn Ihr Port Schriftarten für das X-Window-System installiert, legen Sie diese nach ``LOCALBASE`/lib/X11/fonts/local`.

## 6.7.4. Erzeugen eines künstlichen `DISPLAY` durch Xvfb

Manche Applikationen benötigen ein funktionierendes X11-Display, damit die Kompilierung funktioniert. Das stellt für Systeme, die ohne Display laufen, ein Problem dar. Wenn die folgende Variable benutzt wird, startet die Bauumgebung den virtuellen Framebuffer-X-Server, und ein funktionierendes `DISPLAY` wird dem Build übergeben.

    USE_DISPLAY=  yes

## 6.7.5. Desktop-Einträge

Desktop-Einträge (Freedesktop Standard) können in Ihrem Port einfach über die `DESKTOP_ENTRIES`-Variable erzeugt werden. Diese Einträge erscheinen dann im Applikationsmenü von standardkonformen Desktop-Umgebungen wie GNOME oder KDE. Die `.desktop`-Datei wird dann automatisch erzeugt, installiert und der `pkg-plist` hinzugefügt. Die Syntax ist:

    DESKTOP_ENTRIES=  "NAME" "COMMENT" "ICON" "COMMAND" "CATEGORY" StartupNotify

Die Liste der möglichen Kategorien ist auf der Freedesktop Webseite abrufbar. `StartupNotify` zeigt an, ob die Applikation den Status in Umgebungen, die Startup-Notifications kennen, löschen wird.

Beispiel:

    DESKTOP_ENTRIES=  "ToME" "Roguelike game based on JRR Tolkien's work" \
    	          "${DATADIR}/xtra/graf/tome-128.png" \
    	          "tome -v -g" "Application;Game;RolePlaying;" \
    	          false

Zurück | Zum Anfang | Weiter
Die Benutzung von `perl` | Nach oben | Benutzung von GNOME

Fragen zum FreeBSD Ports-System richten Sie bitte an <ports@FreeBSD.org>, Fragen zu diesem Dokument hingegen an <de-bsd-translators@de.FreeBSD.org>.