http://www.politiker-stopp.de/gfx/politiker-stopp-print.png

Benjamin Schieder

[TECHSUCKS] BERYL DESKTOP DEPENDENCIES

2007 March 08 | 2 comments

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


root@crazyhorse:/usr/src/beryl-core-0.1.9999.2# ./configure --prefix=/usr

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# rocket emerge startup-notification
(...)
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# ./configure --prefix=/usr
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


root@crazyhorse:/usr/src/beryl-plugins-0.1.9999.2# ./configure --prefix=/usr

configure vermisst folgende Pakete:
  • librsvg (A library implementing the SVG image format)

root@crazyhorse:/usr/src/beryl-plugins-0.1.9999.2# rocket emerge librsvg
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# rocket emerge libcroco
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# ./configure --prefix=/usr
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# ./configure --prefix=/usr
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


root@crazyhorse:/usr/src/beryl-settings-0.1.9999.2# ./configure --prefix=/usr

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# ./configure --prefix=/usr
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.
root@crazyhorse:/usr/src/aquamarine-0.1.9999.2# ./configure --prefix=/usr
...
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# make
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

Category: blog

Tags: TechSucks GNOME Beryl


2 Comments

From: papo
2007-03-09 00:27:46 +0100

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

From: blindcoder
2007-03-09 06:42:21 +0100

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!

Post a comment

All comments are held for moderation; basic HTML formatting is accepted.

Name: (required)
E-mail: (required, not published)
Website: (optional)
Comment: