[TechSucks] Beryl Desktop Dependencies

DISCLAIMER
Ich habe absolut KEINE Ahnung von GNOME. Wenn ich hier von GNOME Paketen spreche, kann ich mich irren und es sind gar keine! In einem solchen Falle bin ich um konstruktive Kritik dankbar!
Vor Kurzem habe ich schon einmal ueber Beryl berichtet. Heute gibt es die ausfuehrliche Fassung.
Erstmal habe ich alle .bz2 Dateien der Beryl Version 0.1999.2 heruntergeladen. Nun fange ich an, die Pakete in einer (fuer mich sinnvollen) Reihenfolge zu kompilieren.
beryl-core
configure sagt, mir fehlen folgende Pakete:
- libstartup-notification-1.0 (A startup notification library for GNOME)
(...)
root@crazyhorse:/usr/src/beryl-core-0.1.9999.2# ./configure --prefix=/usr
Nach 'make && mkpkg beryl-core make install' ist Beryl-Core jetzt installiert. Das Programm 'beryl' benoetigt zwei GNOME Libraries:
- libstartup-notification-1.so.0 => /opt/gnome2/lib/libstartup-notification-1.so.0
- libglib-2.0.so.0 => /opt/gnome2/lib/libglib-2.0.so.0
Glib kann ich verstehen, aber von libstartup-notification hatte ich vorher noch nie etwas gehoert.
beryl-manager
root@crazyhorse:/usr/src/beryl-manager-0.1.9999.2# make
root@crazyhorse:/usr/src/beryl-manager-0.1.9999.2# mkpkg beryl-manager make install
Das Paket beryl-manager liefert ein gleichnamiges Programm welches die folgenden GNOME libraries verwendet:
- libgtk-x11-2.0.so.0 => /opt/gnome2/lib/libgtk-x11-2.0.so.0
- libgdk-x11-2.0.so.0 => /opt/gnome2/lib/libgdk-x11-2.0.so.0
- libatk-1.0.so.0 => /opt/gnome2/lib/libatk-1.0.so.0
- libgdk_pixbuf-2.0.so.0 => /opt/gnome2/lib/libgdk_pixbuf-2.0.so.0
- libpangocairo-1.0.so.0 => /opt/gnome2/lib/libpangocairo-1.0.so.0
- libpangoft2-1.0.so.0 => /opt/gnome2/lib/libpangoft2-1.0.so.0
- libcairo.so.2 => /opt/gnome2/lib/libcairo.so.2
- libpango-1.0.so.0 => /opt/gnome2/lib/libpango-1.0.so.0
- libgobject-2.0.so.0 => /opt/gnome2/lib/libgobject-2.0.so.0
- libgmodule-2.0.so.0 => /opt/gnome2/lib/libgmodule-2.0.so.0
- libgthread-2.0.so.0 => /opt/gnome2/lib/libgthread-2.0.so.0
- libglib-2.0.so.0 => /opt/gnome2/lib/libglib-2.0.so.0
Diese Libraries gehoeren zu den folgenden Paketen:
- atk (GTK+ Accessibility)
- cairo (a drawing library)
- glib (siehe oben)
- gtk+ (The Gimp ToolKit)
- pango (library for layout and rendering of internationalized text)
beryl-plugins
configure vermisst folgende Pakete:
- librsvg (A library implementing the SVG image format)
root@crazyhorse:/usr/src/beryl-plugins-0.1.9999.2# ./configure --prefix=/usr
configure vermisst folgende Pakete:
- libcroco (A CSS parsing and manipulation toolkit)
configure behauptet, librsvg wuerde diese Library benoetigen. Trotzdem hat librsvg anstandslos kompiliert.
root@crazyhorse:/usr/src/beryl-plugins-0.1.9999.2# ./configure --prefix=/usr
configure vermisst folgende Pakete:
- gnome-vfs (Gnome virtual file system)
configure behauptet, librsvg wuerde auch diese Library benoetigen.
gnome-vfs will jetzt noch folgende Pakete:
- gconf (Configuration storage library, like libproplist or the Windows Registry)
- orbit2 (a high-performance CORBA ORB (object request broker))
- gnome-mime-data (GNOME MIME database)
root@crazyhorse:/usr/src/beryl-plugins-0.1.9999.2# make
root@crazyhorse:/usr/src/beryl-plugins-0.1.9999.2# mkpkg beryl-plugins make install
beryl-settings-bindings
Habe erst beryl-setting kompilieren wollen, aber das will dieses Paket zuerst haben.
root@crazyhorse:/usr/src/beryl-settings-bindings-0.1.9999.2# make
root@crazyhorse:/usr/src/beryl-settings-bindings-0.1.9999.2# mkpkg beryl-settings-bindings make install
beryl-settings
configure vermisst folgende pakete:
- pygtk (The Python bindings for the Gtk+)
- pygobject (Python bindings for the GObject)
- pycairo - Der Vollstaendigkeit halber aufgefuehrt; configure prueft nicht, ob das Paket vorhanden ist, der Kompiliervorgang schlaegt daher mit einer Fehlermeldung von gcc fehl.
root@crazyhorse:/usr/src/beryl-settings-0.1.9999.2# make
root@crazyhorse:/usr/src/beryl-settings-0.1.9999.2# mkpkg beryl-settings make install
aquamarine
Sowie ich das verstehe ist aquamarine das KDE Dingens von Beryl und emerald das GNOME Dingens.
...
configure: creating ./config.status
wrong input (flag != 4) at admin/conf.change.pl line 117, <> line 1262.
config.status: creating Makefile
config.status: creating kcm/Makefile
config.status: creating po/Makefile
config.status: creating settings-backend/Makefile
config.status: creating src/Makefile
config.status: creating config.h
config.status: executing depfiles commands
Interessante Fehlermeldung, aber das Makefile wurde erstellt.
root@crazyhorse:/usr/src/aquamarine-0.1.9999.2# mkpkg aquamarine make install
Das aquamarine Programm ist jetzt mit glib und libstartup-notification (aus den GNOME Paketen) gelinkt. Kann mir jemand diese Library erklaeren?
Dafuer, dass Beryl angeblich geforked wurde wegen zu vielen GNOME Abhaengigkeiten ist es IMO immer noch etwas viel.
EF
Back home
14:12:05 08.03.2007 | Permalink | Trackback URI
papo (2007-03-09 00:27:46)
Hallo
Wenn dich die beryl-dependencies abschrecken, dann kannst du froh sein dass du diejenigen von compitz nie gesehen hast :).
Zu einigen Fragen:
libstartup-notification ist ein freedesktop.org-Projekt[1], das momentant vorwiegend von Gnome genutzt wird. Das Ding ist dafuer gut, den User (mit Sanduhren usw.) zu beschaeftigen, solange ein Programm am Starten ist.
Etwa das Gleiche gilt auch fuer andere libs, welche du oben als "GNOME libraries" bezeichnest. So haben z.B. cairo (auch von freedesktop), pango, gtk, ATK und glib mit Gnome per se nichts zu tun, aber Gnome baut darauf auf. Die glib z.B. kannst du sogar in Konsolenprogrammen verwenden, um beispielsweise Hashes mit eigenen Hash-Funktionen oder doppelt verlinkte Listen zu kriegen. Dass sich die Gnome-Developer dafuer entschieden haben, standardisiertes Zeugs zu verwenden statt jedes Mal das Rad neu zu erfinden werte ich eigentlich positiv.
Aquamarine, Emerald (und Heliodor) sind nicht einfach Dingens, sondern das sind sogenannte window decorators; die machen, dass das Fenster ne Titel-Leiste mit Knoepfen und abgerundeten Ecken (und was der Geier die da sonst noch fuer Eye-Candy reingepfropft haben) haben.
Ich verstehe das Abhaengigkeitsmodell von gentoo nicht richtig, aber ich wuerde mal ueber die Buecher gehen und versuchen nachzuvollziehen, weshalb z.B. libcroco gnome-vfs benoetigt. Meine libcroco haengt davon nicht ab. D.h. bloss weil dein System eine Abhaengigkeit anzeigt, heisst es nicht, dass diese unbedingt auch wirklich exisitiert.
Damit sollte auch erklaert sein, warum soviel (vermeintliche) Gnome-Deps drin sind. So auf die Schnelle stelle ich naemlich eigentlich jetzt keine einzige Gnome-Dependency mehr fest.
Liebe Gruesse
Mathias
[1] http://freedesktop.org/wiki/Software_2fstartup_2dnotification
blindcoder (2007-03-09 06:42:21)
Ich benutze ROCK Linux auf meinen Systemen. Die gnome-vfs Dependency kommt nicht von libcroco, sondern von beryl-plugins.
Glib wusste ich, dass das nichts mit GNOME zu tun hat. Vielen Dank fuer die Aufklaerung ueber die anderen Libraries!


