xorg howto (xorg anstatt XFree86 nutzen)

asg

push it, don´t hype
Als Ersatz für Xfree86 gibt es in den Ports xorg welches vielen mittlerweile wegen der Lizenzänderung bei Xfree86 sympatischer ist.
Die Umstellung ist weit weniger schwierig als sich die meisten eventuell denken, daher dieses kleine Howto.

System:
FreeBSD 4.10-STABLE mit Xfree86 installiert (ebenso wie blackbox, OO.org,...)

(1) Deinstallation von Xfree86 und imake-4:
Zuerst müssen alle installierten Xfree86 Ports deinstalliert werden. Hierzu nimmt man am besten ?pkg_deinstall? (aus der Sammlung von portupgrade) und den Schalter ?-f? (der die deinstallation trotz bestehender Abhähngigkeiten durchführt).
Code:
pkg_deinstall -f $Xfree86-Port
pkg_deinstall -f imake
Wer danach versucht ein "portversion" (in der Sammlung von portupgrade) aufzurufen, wird sehen das den entsprechenden Programmen die Abhängigkeiten zu Xfree86 fehlt.
Die Deinstallation von imake ist nötig da xorg ein eigenes imake nutzt, imake-6.


(2) Installation von xorg und imake-6:
Für "xorg" gibt es einen sogenannten "Meta-Port" der alle nötigen xorg Ports gleich mitinstalliert:
Code:
/usr/ports/x11/xorg# cat pkg-descr 
This is a metaport for all the X.Org packages available in the ports tree.
Über "portinstall" (aus der Sammlung von portupgrade) lässt sich der Port einfach installieren:
Code:
portinstall imake
portinstall xorg
Bei der Installation von "imake" wählt man "imake-6" aus welches das richtige für xorg ist.

Installiert sind danach die folgenden Ports:

xorg-6.7.0
xorg-clients-6.7.0
xorg-fonts-100dpi-6.7.0
xorg-fonts-75dpi-6.7.0
xorg-fonts-cyrillic-6.7.0
xorg-fonts-encodings-6.7.0
xorg-fonts-miscbitmaps-6.7.0
xorg-fonts-truetype-6.7.0
xorg-fonts-type1-6.7.0
xorg-fontserver-6.7.0
xorg-libraries-6.7.0
xorg-printserver-6.7.0
xorg-server-6.7.0_5
xorg-vfbserver-6.7.0
imake-6.7.0

(3) Die Abhängigkeiten reparieren:
Vielen installierten Ports fehlen die Abhängigkeiten zu Xfree86 die durch xorg ersetzt werden müssen und die zu imake-4 welches nun imake-6 ist.
Code:
/usr/ports/x11-clocks# portversion -v
[Updating the pkgdb <format:bdb1_btree> in /var/db/pkg ... - 95 packages found (-0 +1) . done]
Stale dependency: bbdate-0.2.4 --> XFree86-libraries-4.3.0_7 -- manually run 'pkgdb -F' to fix, or specify -O to force.
Hier verlangt der schon installierte Port die Xfree86 library die aber nicht mehr auf dem System installiert ist. Es ist also nötig das Programm "pkgdb" (in der Sammlung von portupgrade) mit dem Schalter "-F" aufzurufen:
Code:
/usr/ports/x11-clocks# pkgdb -F
--->  Updating the pkgdb
--->  Checking the package registry database
Stale dependency: bbdate-0.2.4 -> XFree86-libraries-4.3.0_7 (x11/XFree86-4-libraries):
New dependency? (? to help): help
Please choose one of these:
ORBit-0.5.17_2  atk-1.6.1  autoconf-2.13.000227_5  autoconf-2.53_1  automake-1.5,1  bbconf-1.8  bbdate-0.2.4  bbkeys-0.8.5  bbpager-0.3.1  bbrb-0.4.1_1  bitstream-vera-1.10  blackbox-0.65.0  boxtools-0.65.0  cpuburn-1.4  cups-1.1.20.0  cups-base-1.1.20.0  cups-lpr-1.1.20.0  cups-pstoraster-7.07_1  curl-7.12.0  cvsup-without-gui-16.1h  ...
New dependency? (? to help):
Es werden eine Menge installierte Ports vorgeschlagen die als neue Abhängigkeit genutzt werden könnten (aber nicht wirklich sinnvoll wären).
Daher drückt man hinter "New dependency (? to help):" einfach die "TAB" Taste, danach werden alle installierten Ports aufgelistet, darunter auch der Ersatz für die Xfree86 Library:
Code:
[...]
xorg-libraries-6.7.0
[...]
Diese kann dann angegeben werden:
Code:
New dependency? (? to help): xorg-libraries-6.7.0
Fixed. (-> xorg-libraries-6.7.0)
Sind noch weitere Ports davon betroffen das diesen die "Xfree86-libraries" fehlen, so wird dies von portupgrade erkannt und es wird sofort "xorg-libraries-6.7.0" als Abhängigkeit vorgeschlagen:
Code:
Stale dependency: libxfce4mcs-4.0.5 -> XFree86-libraries-4.3.0_7 (x11/XFree86-4-libraries):
xorg-libraries-6.7.0 ? ([y]es/[n]o/[a]ll) [yes] 
Fixed. (-> xorg-libraries-6.7.0)
Stale dependency: libxfce4util-4.0.5 -> XFree86-libraries-4.3.0_7 (x11/XFree86-4-libraries):
xorg-libraries-6.7.0 ? ([y]es/[n]o/[a]ll) [yes]
Hier muss nur noch "Return" gedrückt werden da das "yes" schon vorgegeben ist.
Gleiches gilt in diesem Fall natürlich auch für "imake-6".

(4) Auf was zu achten ist:
Bei jeder weiteren Installation eines Ports der X benötigt muss danach ein "pkgdb -F" ausgeführt werden um die Abhähngigkeiten manuell auf die von xorg zu setzen!
Ok, weiter unten, beim "Tip" (Nummer 6) gibt es eine Möglichkeit auch dies zu umgehen und es noch eleganter zu lösen (ich würde sagen, das wäre dann DIE Lösung).

Ich gehe davon aus das "bbdate" noch nicht installiert war nachdem xorg installiert wurde:
Code:
/usr/ports/x11-clocks# portinstall bbdate
--->  Installing 'bbdate-0.2.4' from a port (x11-clocks/bbdate)
--->  Building '/usr/ports/x11-clocks/bbdate'
===>  Cleaning for libiconv-1.9.1_3
===>  Cleaning for gettext-0.13.1_1
===>  Cleaning for gmake-3.80_2
===>  Cleaning for imake-4.3.0_2
===>  Cleaning for libtool-1.3.5_2
===>  Cleaning for pkgconfig-0.15.0_1
===>  Cleaning for freetype2-2.1.7_3
===>  Cleaning for expat-1.95.7
===>  Cleaning for fontconfig-2.2.2,1
===>  Cleaning for XFree86-libraries-4.3.0_7
===>  Cleaning for bbdate-0.2.4
Keine Sorge, der Port "Free86-libraries-4.3.0_7" wird NICHT installiert (siehe dazu Punkt (5)).
Code:
portversion -v
[Updating the pkgdb <format:bdb1_btree> in /var/db/pkg ... - 95 packages found (-0 +1) . done]
Stale dependency: bbdate-0.2.4 --> XFree86-libraries-4.3.0_7 -- manually run 'pkgdb -F' to fix, or specify -O to force.
Wie man sieht muss danach ein "pkgdb -F" ausgeführt werden, und die Abhängigkeit muss, wie oben beschrieben, gefixt werden.

(5) Wissenswertes:
Der Bau eines Ports klappt auch ohne installiertem Xfre86 da der zu installierende Port gegen "libX11.so.6" gelinkt wird.
Code:
#less /usr/ports/Mk/bsd.port.mk
[...]
LIB_DEPENDS+=   X11.6:${PORTSDIR}/x11/XFree86-4-libraries
[...]
Und diese Datei findet sich unter /usr/X11R6/lib wieder und wurde von xorg installiert:
Code:
/usr/ports/x11/xorg# pkg_info -W /usr/X11R6/lib/libX11.so.6 
/usr/X11R6/lib/libX11.so.6 was installed by package xorg-libraries-6.7.0
Da "make" nach dieser Datei sucht, diese auch findet, funktioniert der build eines Ports ohne Probleme.
Was "make" nicht macht ist, die Abhängigkeiten zu überprüfen die in der /usr/ports/Mk/bsd.port.mk schon angegeben sind und auf die "Xfree86-libraries" ziegen. Daher muss nach einem erfolgten build eines Ports der auf X aufsetzt, "pkgdb -F" aufgerufen werden.

(6) Tip: Auch ohne pkgdb -F geht es (und so soll es auch sein!):
Wie eben beschrieben ist die Datei "usr/ports/Mk/bsd.port.mk" daran Schuld das man nach jeder installation eines Ports "pkgdb -F" aufrufen muss.
Muss man das wirklich?
Nein.
Man tausche in der Datei /usr/ports/Mk/bsd.port.mk die Angabe von "Xfree86-4-libraries" mit der von "xorg-libraries" aus:
Code:
[...]
LIB_DEPENDS+=   X11.6:${PORTSDIR}/x11/xorg-libraries
[...]
Gleiches gilt auch hier für imake:
Code:
[...]
.if defined(USE_IMAKE)
BUILD_DEPENDS+= ${X11BASE}/lib/X11/config/date.def:${PORTSDIR}/devel/imake-6
RUN_DEPENDS+= mkhtmlindex:${PORTSDIR}/devel/imake-6
[...]
Ok, wenn man nun einen Port baut kommt:
Code:
/usr/ports/x11-clocks# portinstall xtimer
--->  Installing 'xtimer-0.8089' from a port (x11-clocks/xtimer)
--->  Building '/usr/ports/x11-clocks/xtimer'
===>  Cleaning for libiconv-1.9.1_3
===>  Cleaning for gettext-0.13.1_1
===>  Cleaning for gmake-3.80_2
[b]===>  Cleaning for imake-6.7.0[/b]
===>  Cleaning for libtool-1.3.5_2
===>  Cleaning for pkgconfig-0.15.0_1
===>  Cleaning for freetype2-2.1.7_3
===>  Cleaning for expat-1.95.7
===>  Cleaning for fontconfig-2.2.2,1
[b]===>  Cleaning for xorg-libraries-6.7.0[/b]
===>  Cleaning for xtimer-0.8089
Ja. so soll es sein, der Port baut direkt mit der Abhängigkeit auf "xorg-libraries". Ein portversion meckert danach auch nicht mehr, sondern läuft ohne Probleme durch.
Kleiner Schönheitsfehler, nach einem cvsup kann es sein das die Datei "/usr/ports/Mk/bsd.port.mk" wieder auf dem alten Stand ist, daher muss diese danach wieder bearbeitet werden.

Es mag evtl. noch andere Wege geben auf xorg zu switchen, ich selbst habe diesen durchgeführt und keine Probleme gehabt.
Die alte XF86Config kann beibehalten werden und blackbox startete ohne Probleme, ebenso OO.org und weitere Programme.
Ich möchte meine Hand nicht dafür ins Feuer legen das umgehend alle schon davor installierten Programme reibungslos funktionieren. Evtl. kann es vorkommen das man ein Programm nochmals neu bauen muss (portupgrade -f $Portname).
 
ich sag nur: ALLE ACHTUNG!
der asg hat sich mal wieder selber übertroffen :D
habs noch nicht probiert, aber was soll bei soeinem howto schon schiefgehen?

THX
 
@qfat
Danke Danke.
Ich habe den switch auf einem Rechner gemacht auf dem relativ wenige Ports installiert waren und sind. Es kann daher evtl. vorkommen das der eine oder andere Port nicht mehr funktionieren könnte, soll heissen, das Programm startet nicht. Ist aber ales nicht begründet sondern nur die fehlende Gewissheit.
 
Danke für das HowTo, asg!
Ich werde es an einer funktionierenden XFree86-Installation ausprobieren (Opfern ist nicht das richtige Wort.). Das ist es mir wert.
 
Fast perfektes HowTO ;)

Würde noch imake-6 von X.org (welches beim xorg Metaport nicht mitinstalliert wird) in die bsd.port.mk aufnehmen, da imake-4 von XFree86 stammt.

[...]
.if defined(USE_IMAKE)
BUILD_DEPENDS+= ${X11BASE}/lib/X11/config/date.def:${PORTSDIR}/devel/imake-6
RUN_DEPENDS+= mkhtmlindex:${PORTSDIR}/devel/imake-6
[...]
 
Zuletzt bearbeitet:
@suby
Interessant. An imake dachte ich keine Sekunde.
Die bsd.port.mk ist leider nur nicht wirklich sicher das die Einstellungen beibehalten werden.
Man sollte dann wohl imake-6 installieren und auch hier ein "pkgdb -F" laufen lassen. In wie fern das dann aber greif, so wie obige "libX11.so.6", ist mir noch fremd.
Naja, mal morgen auf Arbeit testen.
 
Ok, habe den Part mit "imake" auch noch in das Howto aufgenommen. Merci suby.
 
mal ne dumme frage...
wo sind die große unterschiede???
und was haben die bei xfree86 verändern, so das ihr es net mehr "haben" wollt???
oder sind es nur spielereien von euch???
ich peil das net ganz...
 
Ich hatte eine Email an die X11 mailingliste und questions geschrieben und folgende Antwort von Matthew erhalten:

On Wed, Jun 30, 2004 at 12:46:37PM +0200, Axel S. Gruner wrote:
> i have written a howto for people willing to switch from XFree86 to
> xorg. Ok, at this time it is only available in german:
> http://www.bsdforen.de/showthread.php?p=39983#post39983
> But i also have some questions about switching to xorg.
> (1) Will xorg be the default X in future FreeBSD Releases?

Code:
Probably.  It seems that most of the Linux distros have switched or
are switching to it, and the Unix vendors like Sun always were behind
X.Org anyway.  
There is has been a discussion on the x11 and docs mailing lists
covering all of the whys and wherefores.  A good place to start is
here:

    [url]http://docs.freebsd.org/cgi/mid.cgi?200406051411.04259.linimon[/url]

> (2) I have xorg running, without a problem, but if i install a new
> application with a XFree86 dependency i have to run "pkgdb -F" to fix
> the dependency to xorg stuff (and imake-6).
> If i change /usr/ports/Mk/bsd.port.mk and the entries about XFree86 and
> imake-4 to xorg and imake-6, the change will not be permanent (cvsup
> will overwrite the change):
> [...]
> LIB_DEPENDS+= X11.6:${PORTSDIR}/x11/xorg-libraries
> [...]
> .if defined(USE_IMAKE)
> BUILD_DEPENDS+= ${X11BASE}/lib/X11/config/date.def:
> ${PORTSDIR}/devel/imake-6
> RUN_DEPENDS+= mkhtmlindex:${PORTSDIR}/devel/imake-6
> [...]
> So, is there another way to fix that permanently or a work-around?

Code:
Eventually something like what you propose will be added to
bsd.port.mk or whichever makefile is appropriate.  Until then, you're
going to have to maintain your patches in parallel to the ordinary
development of the ports tree.
On the whole though, you can get by without fiddling in the makefiles
if you're prepared to run pkgdb(1) to fix up the dependencies after
the fact.
The X.Org stuff is still considered experimental at the moment.  As
more and more people start to use it and it gets well debugged, the
ports infrastructure around it will be improved.

        Cheers,

        Matthew

Man darf also gespannt sein wann X.org per default bei FreeBSD installiert wird. Bis dahin muss man, so man es denn nutzt, mit einem "pkgdb -F" leben.
Laut des von Matthew geposteten links wird Ende 2004 wohl der Umstieg auf X.org avesiert, wer sich fragt warum und wieso, sollte sich den obigen link anschauen und den Text lesen.
 
@ asg
ich kappiere es immer noch net...
wollen die jetzt das projekt kostenpflichtig machen???
oder wollen sie es "closed" machen, so das kein anderer dran ändern darf???
was hat es für konsequenzen für privatanwender???

ich finde es halt kacke, da es langsam ausmaßen von M$ annimmt...
das kann doch net sein, dass die dort so abdrehen...
steigt den etwa alles zum kopf???
 
Nein, die störte es etwas das man überall "Linux hier, KDE dort, Gnome da hinten" Hypenachrichten hört mit Linux auf dem Desktop und so. Ausser eben das sie nicht genannt wurden. Die grafische Oberfläche - ohne die sich wohl kaum ein Desktop verkauft - wurde nie erwähnt.
Deshalb muss man jetzt in Doku etc "give Credits to XF86". Das ist nicht direkt GPL kompatibel, deshalb switchen viele Distributoren.
Und da Linux leider die treibende Kraft hinter *nix auf dem Desktop ist....
 
@der_bladilein:

Das wird doch in dem link von asg weiter oben alles erklärt, siehe http://www.xfree86.org/legal/licenses.html.

So wie schon Elessar treffend bemerkte ist die neue Lizenz 1.1 von XFree noch weitergehender als die GPL, weil sie diese "advertising clause" und einige andere kleinere Änderungen enthält. In dem link gibt es einen weiteren link, wo Dawid Dawes die Änderungen im Einzelnen dokumentiert, siehe http://www.xfree86.org/pipermail/forum/2004-January/003889.html.

HTH, Daniel
 
kann den patch mal bitte jemand erklären?
also löst der das problem mit dem cvsup ganz?
oder muss man nach jedem cvsup neu patchen?
thx
 
Moin,

ich find den Thread ziemlich interessant, aber mir stellt sich gerade die Frage, wie weit die Hardware-Unterstuetzung bei xorg ist?! Ich hab dazu auf X.org keine Anhaltspunkte gefunden.
Ist die analog zu XFree, schlechter, besser?

Danke!

Ciao,
-Martin.
 
Besser als XFree86 4.3 da xorg ein Fork von XFree86 4.399 ist. z.b. wird die radeon 9200 ohne Tricks unterstützt.
 
Moin,

snoopy schrieb:
Besser als XFree86 4.3 da xorg ein Fork von XFree86 4.399 ist. z.b. wird die radeon 9200 ohne Tricks unterstützt.

hmm ... aber Support fuer die Matrox Millenium P750 ist wohl auch da noch nicht absehbar?! *gg*


CIao,
-Martin.
 
@asg
echt super howto.

besser als xfree finde ich es nicht, aber ich hab auch keine readeon 9200 :)
 
snoopy schrieb:
Besser als XFree86 4.3 da xorg ein Fork von XFree86 4.399 ist. z.b. wird die radeon 9200 ohne Tricks unterstützt.

Welche Karten werden konkret von 4.399 unterstützt? Identische Unterstützung wie Xfree 4.4.0?

cheers
 
bsd5543 schrieb:
Welche Karten werden konkret von 4.399 unterstützt? Identische Unterstützung wie Xfree 4.4.0?

cheers

X.Org Foundation today announces their first release of the X Window System since the formation of the Foundation in January of this year. The new X.Org release, called X Window System Version 11 Release 6.7 (X11R6.7), builds on the work of the X.Org X11R6.6 and XFree86TM Project Inc. V4.4RC2 releases to combine many of the latest developments from a large number of the participants and companies working with the X Window community. The X Window System X11R6.7 release is now available for download at http://www.X.Org.

Also werden mindestens die Karten unterstützt, die mit XFree86 4.4RC2 unterstützt wurden.
 
Mal 'ne Frage:

Laufen die NVIDIA-Treiber auch unter X.org? Momentan hab ich XFree86 4.3, da ict das kein Problem. Sollten das nicht funktionieren, würd' ich bei XFree86 4.3 bleiben. Hat das jemand schon ausprobiert?
 
Schei####!!!

Beim make steigt er mir aus. Meldet syntax errors bei sis_render. Bei wem is'n der Kram durchgelaufen

cheers
 
Zurück
Oben