Verinice unter FreeBSD

Hallo zusammen,

nachdem ich den Verinice-Client unter FreeBSD zum Laufen bekommen habe, dachte ich, teile ich meine kleine Wochenendbastelei mal mit dem Forum und stelle ein paar Fragen dazu, die ich noch habe.

Hintergrund: Ich arbeite für ein Hosting-Unternehmen, welches sich in Richtung Grundschutz bewegen möchte. Nach unserer Recherche haben wir der Führung Verinice vorgeschlagen und bewilligt bekommen. Für uns waren vor allem drei Dinge maßgeblich: Selbst-hostbar, Open-Source, deutscher Hersteller. Teil unserer Firmenkultur ist der Ansatz „jedem Mitarbeiter des richtige Werkzeug“, weshalb wir - nach gewissen Richtlinien - relativ freie Wahl hinsichtlich des Betriebssystems haben.

FreeBSD ist ein Open-Source Betriebssystem und ein direkter Abkömmling des ursprünglichen Unix. Außerhalb von Servern oder dem Embedded-Einsatz ist es zugegebenermaßen ein Exot, aber man kann damit durchaus auch seine Arbeitsstation betreiben, wenn man möchte. Es bringt den sogenannten „Linuxulator“ mit, ein System, um durch Übersetzen der Syscalls Linux-Programme ausführen zu können. Da es ein natives Linux-Binary von Verinice gibt, ist dies meine erste Anlaufstation.

Ausführen von Verinice

Beim Versuch, das Programm einfach auszuführen, passiert typischerweise dies:

ELF binary type „0“ not known.
./verinice: Exec format error. Falsche Architektur.

% file verinice
verinice: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=b621fbc20e80d7ac375ece11a5775fc6686b71c7, with debug_info, not stripped

Standardmäßig kann FreeBSD Programmdateien von Fremdsystemen nicht ausführen.

Linuxulator aktivieren und Kernelmodule laden

# sysrc linux_enable="YES"
# vi /etc/rc.conf

Hinzufügen von „linux“ zum Array „kld_list“. System neustarten. Anschließend führt der nächste Versuch zu dieser Fehlermeldung

ELF interpreter /lib64/ld-linux-x86-64.so.2 not found, error 2

Der Hintergrund ist, daß nun zwar das Programm im Linux-Mode ausgeführt werden kann, aber die benötigten Linux-Bibliotheken nicht vorhanden sind.

Linux-Bibliotheken installieren

# pkg install linux_base-c7

Sobald die grundlegendsten Bibliotheken von CentOS 7 vorhanden sind, passiert beim Ausführen dies:

OpenJDK 64-Bit Server VM warning: Can’t detect primordial thread stack location - find_vma failed

Linux verwendet das /proc-Dateisystem exzessiv und sehr viele Programme funktionieren nicht ohne.

Linux Proc-Dateisystem zur Verfügung stellen

Wie von der Installationsnachricht des Paketes empfohlen, stellt man der Linux-Umgebung ein Proc-Dateisystem zur Verfügung:

# echo "linprocfs   /compat/linux/proc  linprocfs       rw      0       0" > /etc/fstab
# mount /compat/linux/proc

Die ebenfalls erwähnten linsysfs und tmpfs werden für Verinice vermutlich nicht unbedingt benötgt.

Nun läßt sich das Programm starten, bricht aber mit dieser Meldung ab:

Ein Fehler ist aufgetreten. Informationen hierzu enthält die Protokolldatei
/usr/home/benutzername/verinice/workspace/.metadata/.log

Im Log findet sich u.a. diese Zeile:

java.lang.UnsatisfiedLinkError: org.eclipse.swt.internal.gtk.OS._cachejvmptr()V

Linux-GTK+3 zur Verfügung stellen

# pkg install linux-c7-gtk3

Anschließend startet Verinice, kann sich zum Server verbinden, usw.

Probleme

Auf der Konsole werden verschiedene Warnungen ausgegeben. Z.B. diese:

(verinice:23365): dbind-WARNING **: 19:20:26.430: Couldn’t register with accessibility bus: Did not receive a reply. Possible causes include: the remote applic
ation did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

Frage an die Entwickler: Wofür wird dbus von Verinice genutzt? Muß ich mit dem Fehlen wichtiger Funktionalität rechnen, wenn der Dienst nicht zur Verfügung steht?

log4j:WARN File option not set for appender [FILE].
log4j:WARN Are you using FileAppender instead of ConsoleAppender?

Diese Warnungen können vermutlich ignoriert werden. Oder gibt es diesbezüglich Handlungsbedarf?

SCHWERWIEGEND: Unable to set localhost. This prevents creation of a GUID. Cause was: meinhostname.meinedomain: meinhostname.meinedomain: Der Name oder der Dienst ist nicht bekannt
java.net.UnknownHostException: meinhostname.meinedomaiin: meinhostname.meinedomain: Der Name oder der Dienst ist nicht bekannt
at java.net.InetAddress.getLocalHost(InetAddress.java:1506)

Das sieht nicht so schön aus. Dazu muß ich mir nochmal das Linux-Kompatibilitätssystem ansehen, da vermutlich dort die Definition von Localhost irgendwo eingetragen werden muß. Wofür nutzt Verinice die generierte GUID?

Gtk-WARNING **: 09:10:05.514: Could not load a pixbuf from /org/gtk/libgtk/theme/Adwaita/assets/bullet-symbolic.svg.
This may indicate that pixbuf loaders or the mime database could not be found.

Tatsächlich fehlt das shared-mime-info-Paket für den Linux-Modus, weshalb z.B. die kleinen schwarzen Pfeilchen zum Aufklappen von Items nicht angezeigt werden können. Hier muß ich nochmal ran und ggf. einen Port schreiben, welcher das Paket zur Verfügung stellt.

Aublick

Sollte ich für eines oder mehrere der genannten Probleme eine Lösung finden, teile ich sie hier mit. Mittelfristig will ich allerdings ausprobieren, ob ich aus dem Quellcode eine native FreeBSD-Version von Verinice bauen kann. Leider ist Java so gar nicht meine Welt, weshalb das Experiment nicht unter dem besten Stern steht.

In jedem Fall einfach mal ein „Dankeschön!“ an das Team von SerNet! Verinice macht uns in jedem Fall die Arbeit leichter.

2 „Gefällt mir“

Hallo kraileth,

vielen Dank für den spannenden Beitrag und das positive Feedback!

verinice wird vermutlich unter FreeBSD lauffähig sein, ist allerdings von uns auf dieser Plattform weder getestet noch supported. Bei der Viezahl möglicher Linux-Distributionen sprengt das schlichtweg den Rahmen. Wir schauen einmal, ob die Kollegen aus der Entwicklung noch Hinweise zu den offenen Punkten haben…

Viel Erfolg!

MfG mflue

Hallo mflue,

danke für die schnelle und freundliche Antwort! Vielleicht noch kurz zu meiner „Erwartungshaltung“, damit es keine Mißverständnisse gibt:

Das (Über-)leben im Distributionsjungel ist seit einigen Jahren mein tägliches Brot. Entsprechend kann ich völlig verstehen, daß der Support selbst bei großen Unternehmen längst nicht jede Nische abdecken kann, bzw. ich halte es für wirtschaftlich vernünftig, sich auf eine Distribution zu beschränken, welche die Supporter kennen, in diesem Fall RedHat/CentOS. Daß überhaupt Linux offiziell unterstützt wird, finde ich tatsächlich sehr löblich (und es hat in unserem Fall die Entscheidung für Verinice recht einfach gemacht). Wenn das allgemein Schule machen würde, kämen wir in unserem Land technisch deutlich voran - aber das ist eine andere Baustelle…

Daß neben Windows, macOS und Linux keine vierte Plattform offiziell unterstützt wird, ist relativ naheliegend. Sonst käme im Zweifel irgendwann jemand und möchte OpenBSD unterstützt haben (die BSDs sind als eigenständige Betriebssysteme technisch deutlich weiter außeinander als die verschiedenen Linux-Distributionen), der nächste mag illumos/OpenSolaris… Aber aus meiner Sicht ist es eine der Stärken, der Open-Source-Gemeinschaft, daß sich dort viele Bastler tummeln, die einfach einmal ungewöhnliche Dinge ausprobieren. Nur in diesem Sinne frage ich nach, nicht etwa um vielleicht eine Art „Support durch die Hintertür“ zu erschleichen.

Wenn sich an irgendeinem Punkt herausstellen sollte, daß es nicht geht, dann geht es eben nicht. Mit Linux wird ja schließlich eine freie Plattform unterstützt, die ich nutzen könnte - man kann nicht freiwillig abseits der gut ausgetretenen Pfade wandeln und sich dann wundern, daß da Büsche wuchern (und gerne haben die Dinger dann auch noch Dornen!). Damit muß man klarkommen oder doch zur langweiligen aber sicheren Straße zurück. In diesem Sinne auch meine Bitte um ein paar Informationen zum Produkt - nicht, weil ich hoffe, daß jemand Dornenbüsche für mich ausreißt, sondern einfach in der Hoffnung, daß ich dann selbst besser abschätzen kann, was zu tun ist, oder ob es ohne die ganz große Machete kein Durchkommen gibt.

Den obigen Beitrag hätte ich auch nicht geschrieben, wenn ich nicht zumindest so weit gekommen wäre, daß ich einen Anfangserfolg hätte vermelden können. Bei den meisten Projekten, mit denen ich bisher zusammengearbeitet habe, gab es zumindest immer den einen oder anderen Programmierer, der sich darüber freute, daß jemand ernsthaft versucht, sein Werk auf einer Plattform zu verwenden, mit der er nicht gerechnet hätte. Vielleicht habe ich ein Lächeln oder Lachen auslösen können - und das hat ja im Arbeitsalltag auch seinen Wert. :wink:

3 „Gefällt mir“

Hallo kraileth,

vielen Dank Ihnen für die freundliche und positive Rückmeldung!

Ihre Anfrage habe ich ebenso offen verstanden, jedenfalls nicht als Absicht „Support durch die Hintertür“ zu erschleichen! Das sieht dann meistens noch ganz anders aus :wink:

Ich weiß, dass Sie hinsichtlich des Open-Source Gedankens den Nerv des verinice.TEAMs ansprechen, insbesondere den meiner Kollegen in der Entwicklung. Ich weiß hingegen leider nicht, ob dort FreeBSD Know-How vorhanden ist.

Vielleicht warten wir noch etwas ab, ob sich einer der Kollegen befähigt fühlt Ihre Fragen zu beantworten oder Hinweise zu geben…

Vielen Dank!

Michael Flürenbrock

Hallo kraileth,

Vielleicht habe ich ein Lächeln oder Lachen auslösen können

Ich musste tatsächlich schmunzeln. Allerdings finde ich FreeBSD gar nicht so exotisch.
Ich persönlich bin ein Fan von OpenBSD. Im Vergleich ist FreeBSD populär. :wink:

Wofür wird dbus von Verinice genutzt? Muß ich mit dem Fehlen wichtiger Funktionalität rechnen, wenn der Dienst nicht zur Verfügung steht?

Verinice verwendet dbus nicht explizit. Allerdings sind GTK, dbus, und SystemD in der Linux welt sehr verworren. Ich würde diese Meldung erstmal ignorieren. Sollte sich die GUI unerwartet verhalten, kann es allerdings daran liegen.

log4j:WARN File option not set for appender [FILE].
log4j:WARN Are you using FileAppender instead of ConsoleAppender?

Diese Warnung is tatsächlich harmlos, wir (verinice. Entwickler) sollten uns allerdings darum kümmern, da sie unschön ist.

SCHWERWIEGEND: Unable to set localhost. This prevents creation of a GUID. Cause was: meinhostname.meinedomain: meinhostname.meinedomain: Der Name oder der Dienst ist nicht bekannt
java.net.UnknownHostException: meinhostname.meinedomaiin: meinhostname.meinedomain: Der Name oder der Dienst ist nicht bekannt
at java.net.InetAddress.getLocalHost(InetAddress.java:1506)

Ich denke Sie haben den Stacktrace etwas ungünstig abgeschnitten. Ist SocketPermissionHandler.java:52 Teil des Traces?
Jedenfalls, wird die GUID von Java’s interner Netwerk Bibliothek verwendet. Die Details kenne ich nicht.

Leider ist Java so gar nicht meine Welt

Es ist richtig, dass verinice. in Java geschrieben ist, allerdings ist in puncto Portierbarkeit der Knackpunkt, dass verinice. auf der Eclipse RCP aufbaut. Das macht es komplizierter als eine „einfache“ Java-Anwendung zu portieren.

Ich hoffe ich habe keine Frage übersehen.

Beste Grüße
Alex

1 „Gefällt mir“

Hallo anasrallah,

herzlichen Dank für die Antwort! Es ist schön, sogar einen anderen BSDler anzutreffen - als mein Absprung von Linux anstand, hatte ich auch ein gutes halbes Jahr OpenBSD als Hauptbetriebssystem. Meine Wahl fiel damals in erster Linie aufgrund der fehlenden Virtualisierungsmöglichkeiten auf FreeBSD, aber ich bin Puffy stets verbunden geblieben. Jetzt mit VMM hat sich die Welt ja weitergedreht, aber inzwischen kann ich nicht mehr so richtig ohne ZFS… Aber vielleicht macht ja doch irgendwann jemand ernst und portiert HAMMER2 nach OpenBSD? An diesem Tag wäre die Verlockung zugegebenermaßen groß, mal wieder genauer zu prüfen, ob ich umsteigen kann.:slightly_smiling_face:

Daß dbus nicht explizit verwendet wird, ist schonmal gut. Dann brauche ich in der Richtung erstmal nichts weiter zu tun.

Hinsichtlich des Hostnamens hier einmal die vollständige Meldung (mit ersetztem Hostnamen/Domain):

SCHWERWIEGEND: Unable to set localhost. This prevents creation of a GUID. Cause was: meinname.meinedomain: meinname.meinedomain: Der Name oder der Dienst ist nicht bekannt  
java.net.UnknownHostException: meinname.meinedomein: meinname.meinedomain: Der Name oder der Dienst ist nicht bekannt                    
        at java.net.InetAddress.getLocalHost(InetAddress.java:1506)                                                                                            
        at net.sf.ehcache.Cache.<clinit>(Cache.java:145)                                                                                                       
        at net.sf.ehcache.config.ConfigurationHelper.createCache(ConfigurationHelper.java:452)                     
        at net.sf.ehcache.config.ConfigurationHelper.createDefaultCache(ConfigurationHelper.java:368)              
        at net.sf.ehcache.CacheManager.configure(CacheManager.java:321)                                                                                        
        at net.sf.ehcache.CacheManager.init(CacheManager.java:237)                                                                                             
        at net.sf.ehcache.CacheManager.<init>(CacheManager.java:221)                                                                                           
        at net.sf.ehcache.CacheManager.create(CacheManager.java:415)                                                                                           
        at sernet.verinice.service.tree.ElementCache.createCache(ElementCache.java:217)                            
        at sernet.verinice.service.tree.ElementCache.<init>(ElementCache.java:65)                                  
        at sernet.verinice.service.tree.ElementManager.<init>(ElementManager.java:68)                              
        at sernet.verinice.rcp.catalog.CatalogView.<init>(CatalogView.java:142)                                                                                
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)                                                                               
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)                     
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)                                                
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)                                                                                     
        at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:204)                               
        at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:934)
        at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
        at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
        at org.eclipse.ui.internal.registry.ViewDescriptor.createView(ViewDescriptor.java:61)
        at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:103)
        at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPart(CompatibilityPart.java:300)
        at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:338)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
        at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:1001)
        at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:966)
        at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:139)
        at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:411)
        at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:333)
        at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
        at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
        at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
        at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
        at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:1015)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$1.run(PartRenderingEngine.java:560)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:544)
        at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:73)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:1015)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:781)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:752)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:746)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:730)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.createElement(PartServiceImpl.java:1283)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1244)
        at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:396)
        at org.eclipse.ui.internal.ViewReference.getView(ViewReference.java:88) 
        at sernet.gs.ui.rcp.main.ApplicationWorkbenchWindowAdvisor.lambda$2(ApplicationWorkbenchWindowAdvisor.java:234)
        at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
        at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
        at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:647)
        at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:272)
        at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
        at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:647)
        at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:272)
        at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485)
        at sernet.gs.ui.rcp.main.ApplicationWorkbenchWindowAdvisor.checkOpenViews(ApplicationWorkbenchWindowAdvisor.java:233)
        at sernet.gs.ui.rcp.main.ApplicationWorkbenchWindowAdvisor.postWindowOpen(ApplicationWorkbenchWindowAdvisor.java:160)
        at org.eclipse.ui.internal.WorkbenchWindow.fireWindowOpened(WorkbenchWindow.java:1792)
        at org.eclipse.ui.internal.Workbench.createWorkbenchWindow(Workbench.java:1536)
        at org.eclipse.ui.internal.Workbench.openWorkbenchWindow(Workbench.java:2544)
        at org.eclipse.ui.internal.Workbench.getWorkbenchPage(Workbench.java:2011)
        at org.eclipse.ui.internal.Workbench.setReference(Workbench.java:2056)
        at org.eclipse.ui.internal.Workbench.lambda$11(Workbench.java:1951)
        at org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38)
        at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:236) 
        at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:146)
        at org.eclipse.swt.widgets.Display.syncExec(Display.java:6018)
        at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:219)
        at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
        at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205)
        at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203)
        at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
        at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
        at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:132)
        at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
        at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
        at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
        at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
        at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
        at org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl.setContext(PartImpl.java:469)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:650)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$1.run(PartRenderingEngine.java:560)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:544)
        at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:73)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:1015)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:781)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:752)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:746)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:730)
        at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1294)
        at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:105)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:693)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:781)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:752)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:746)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:730)
        at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
        at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:140)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:689)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:781)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:752)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:746)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:730)
        at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
        at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:51)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:689)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:781)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:752)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:746)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:730)
        at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:82)
        at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:105)
        at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:64)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:693)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:781)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:752)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:746)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:730)
        at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
        at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:140)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:689)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:781)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:752)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:746)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:730)
        at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:72)
        at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:665)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:689)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:781)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:752)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:746)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:730)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1099)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
        at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:635)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:559)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
        at sernet.gs.ui.rcp.main.Application.start(Application.java:50)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1468)
Caused by: java.net.UnknownHostException: meinname.meinedomain: Der Name oder der Dienst ist nicht bekannt
        at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
        at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)
        at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)
        at java.net.InetAddress.getLocalHost(InetAddress.java:1501)
        ... 178 more

Die pixbuf-Fehlermeldung ist übrigens auch weg, nachdem ich einen Port für shared-mime-info in der Linux-Emulation hinzugefügt habe (ist noch privat, sollte ich aber eigentlich veröffentlichen).

Mit der Eclipse RCP bin ich nicht näher vertraut, das werde ich mir vermutlich aus Neugier auch mal etwas ansehen. Danke für den Hinweis darauf.

Edit: Mein Hauptproblem im Augenblick ist, daß mein Objektbrowser immer leer ist. Könnte das eventuell doch am fehlenden Dbus liegen - oder wäre ein anderer Grund wahrscheinlicher?

Viele Grüße,
Michael