Bug 822477

Summary: Docky does not start
Product: [Fedora] Fedora Reporter: markm <marek78uk>
Component: dockyAssignee: Lukas Zapletal <lzap>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 17CC: christopher.plummer, htl10, lzap, mono, ojar
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-19 15:06:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description markm 2012-05-17 13:14:05 UTC
Description of problem:

Docky does not start


Version-Release number of selected component (if applicable):

# rpm -qa | grep docky
docky-2.0.12-1.fc17.x86_64

How reproducible:

always

Steps to Reproduce:
1. install docky
2. run docky
  
Actual results:

$ docky 
Missing method Init in assembly /usr/lib64/docky/Docky.exe, type NDesk.DBus.BusG

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'NDesk.DBus.GLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099' or one of its dependencies.
File name: 'NDesk.DBus.GLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099'
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'NDesk.DBus.GLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099' or one of its dependencies.
File name: 'NDesk.DBus.GLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099'


Expected results:

docky to run

Additional info:

funnily enough, docky works just fine in a virtual machine on the other computer. the only difference is on my test laptop I've got some updates from updates-testing repo, while the vm has just updates. Also laptop was installed from Fedora 17 Beta DVD install media, while vm was installed from net-install disc.

Comment 1 markm 2012-05-21 11:38:40 UTC
Today did a simple exercise - installed in vm both 32bit and 64bit versions of Fedora 17, on 32bit docky works, on 64bit it does not work and fails with:

$ docky
Missing method Init in assembly /usr/lib64/docky/Docky.exe, type NDesk.DBus.BusG

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'NDesk.DBus.GLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099' or one of its dependencies.
File name: 'NDesk.DBus.GLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099'
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'NDesk.DBus.GLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099' or one of its dependencies.
File name: 'NDesk.DBus.GLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099'


so I guess some libraries are incorrectly linked...

Comment 2 Lukas Zapletal 2012-05-24 10:26:48 UTC
Well that version is quite old, I was trying to build new version, got patches and everything, but for some reason it fails to compile due to compiler bug:

http://koji.fedoraproject.org/koji/taskinfo?taskID=4097528

Would you mind trying to compile it?

Do this:

rpmbuild --rebuild docky-2.1.4-1.fc18.src.rpm

You can download the src rpm on the link above or here http://lzap.fedorapeople.org/temp/

I am not gonna backport this bug since there were so many changes in the Mono (F17), it would be too time consuming. I'd rather build the new version and release update for it.

Comment 3 markm 2012-05-24 17:47:35 UTC
(In reply to comment #2)
> Well that version is quite old, I was trying to build new version, got
> patches and everything, but for some reason it fails to compile due to
> compiler bug:
> 
> http://koji.fedoraproject.org/koji/taskinfo?taskID=4097528
> 
> Would you mind trying to compile it?

Not a problem. When I tried, I got this error:

Compiling Docky.Widgets.dll...
./Docky.Widgets/Tile.cs(124,43): error CS0584: Internal compiler error: Method not found: 'Docky.Services.Log`1.Notify'.
./Docky.Widgets/Tile.cs(124,43): error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement
Compilation failed: 2 error(s), 0 warnings
make[1]: *** [../build/Docky.Widgets.dll] Error 1
make[1]: Leaving directory `/root/rpmbuild/BUILD/docky-2.1.4/Docky.Widgets'
make: *** [all-recursive] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.6OfOhN (%build)

Comment 4 Hin-Tak Leung 2012-05-24 19:41:22 UTC
I can build the rpm with three minor changes in the spec file in the file-listing section towards the end - i.e. just packaging.

remove
%{python_sitelib}/%{name}
%{_libdir}/pkgconfig/docky.windowing.pc

and add
/etc/gconf/schemas/docky.schemas

The compiler error looks like the typical problems with the mono 10.x c# compiler through - the mono people recommend the upcoming 11.x. (I am on up-to-date fc16 but using mono 10.8 taken from fc18 backwards)

Comment 5 Lukas Zapletal 2012-05-25 13:59:39 UTC
Is there any workaround? I would like to do a build for F17 :-( I am not mono expert, just took this package some time ago because I was using this...

Comment 6 Chris Plummer 2012-05-31 17:35:27 UTC
I just fixed this on my x86_64 Fedora 17 install - I did the following:

1) Installed dependencies (which installed some missing non-devel packages, like gio-sharp, dbus-sharp, and dbus-sharp-glib):

sudo yum install bzr GConf2-devel gnome-sharp-devel gio-sharp-devel gnome-desktop-sharp-devel gnome-keyring-sharp-devel mono-addins-devel dbus-sharp-devel dbus-sharp-glib-devel notify-sharp-devel gtk+extra-devel

2) Grabbed docky source and compile

bzr branch lp:docky/2.1
cd 2.1/
./autogen.sh
make

3) Ran into same problems as above with compilation, so I tried to solve the original problem I had running docky-2.0 (as explained by the bug reporter).  To fix the missing DLL error, I ran this to update the GAC (global assembly cache, see http://www.mono-project.com/Assemblies_and_the_GAC):

sudo gacutil -i /usr/lib64/mono/ndesk-dbus-1.0/NDesk.DBus.dll
sudo gacutil -i /usr/lib64/mono/ndesk-dbus-glib-1.0/NDesk.DBus.GLib.dll
sudo gacutil -i /usr/lib64/mono/notify-sharp/notify-sharp.dll

4) Tried to run docky, got an error with a missing libglib-2.0-0.dll file - I found a workaround at https://bugzilla.redhat.com/show_bug.cgi?id=692784, which was to insert this line at the top of /etc/mono/config:

<dllmap dll="libglib-2.0-0.dll" target="libglib-2.0.so.0" os="!windows,osx"/>

5) Ran docky 2.0 again, and it worked!  I tried to change settings and got an error with a missing libgnome-desktop-2.so.17 file, so I did:

sudo yum install gnome-desktop

6) Ran docky 2.0 again and everything works!

7) Recompile the docky 2.1 code again - it also worked!  I'm guessing that either the <dllmap> entry in the mono config or the gnome-desktop installation was what fixed it, but I'm not sure.  So, long story short, I'm now running Docky 2.1.5 on my F17 box.

Comment 7 Lukas Zapletal 2012-06-01 12:32:46 UTC
Chris, so did you encounter this error or not: 

http://koji.fedoraproject.org/koji/getfile?taskID=4119174&name=build.log

Cos I am not able to build this in Koji in F17 buildroot.

Comment 8 Chris Plummer 2012-06-01 14:17:11 UTC
Hey Lukáš,

I got that compile error when I first tried grabbing the docky 2.1 source and building, as I mentioned in steps 1) and 2).  I couldn't get anywhere with the compilation error, so I decided to go back and try to fix the original problem that was reported (which I had encountered as well) with the docky 2.0.x package I had installed from yum.

After I fixed that (steps 3, 4, 5, and 6 from above), I then tried to see if anything changed in the compilation steps I had tried previously and suddenly 'make' built everything correctly.  So, I think that maybe the <dllmap> entry I put into the mono config file fixed it or else installing the gnome-desktop package did - I'll try to find some time to do some additional tests today to see if I can pinpoint what fixed it.

Comment 9 Naipaul Ojar 2012-06-04 01:39:44 UTC
Dear All,

I have compiled the Docky 2.1.5 on both Fedora 16 and 17 x86_64 and they both work. 

F16 does not require the gacutil to compile. I ran them, and even I can find the files identified, I get errors.

I have a common error for the Docky "Helpers", 'docmanager' required. I downloaded the source and the configure fails. with the error:-

======
checking for DOCKMANAGER_DAEMON... no
configure: error: Package requirements (glib-2.0 >= 2.18.0 gobject-2.0 gio-2.0 desktop-agnostic >= 0.3.9 dbus-glib-1) were not met:

No package 'desktop-agnostic' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

======

There is no desktop-agnostic available on F16.

I do know that the Docky "Helpers" did exist with the Docky that part of F16.

Comment 10 Chris Plummer 2012-06-04 18:32:52 UTC
I looked at it again today and the compiler problem was with the 'notify-sharp.dll' assembly not being in the GAC.  Docky would compile just fine if I removed the <dllmap> entry and removed the gnome-desktop package, but the compiler error would re-occur if I removed 'notify-sharp' from the GAC (using 'sudo gacutil -u notify-sharp').  As soon as I re-cached notify-sharp ('sudo gacutil -i /usr/lib64/mono/notify-sharp/notify-sharp.dll'), the compilation would work.

I did some other tests with docky 2.0, 2.1, and 2.2 (trunk), here's what I found:

For successful compilation (running './autogen.sh; make;':

  2.0, 2.1, 2.2 - add notify-sharp to GAC

For successful runtime operation (running 'sudo make install' then the 'docky' command in a terminal):

  2.0 - install gnome-desktop, add <dllmap> entry for libglib-2.0-0.dll, add ndesk-dbus, ndesk-dbus-glib to GAC
  2.1,2.2 - install gnome-desktop

Comment 11 Naipaul Ojar 2012-06-04 21:23:49 UTC
Thanks for the clarification on the compilation of the Docky utility.

1. My comment above was for the compilation of the dockmanager, which seems to be a separate build to Docky.

The gacutil command as identified works with F17 but not F16. The following occurs on Fedora 16. [ Docky has been built successfully and is working, yet I get the following on F16 as root:

#ls /usr/lib64/mono/notify-sharp/notify-sharp.dll
   /usr/lib64/mono/notify-sharp/notify-sharp.dll

# gacutil -i /usr/lib64/mono/notify-sharp/notify-sharp.dll
Failure adding assembly /usr/lib64/mono/notify-sharp/notify-sharp.dll to the cache: The file specified is not a valid assembly.

Comment 12 Chris Plummer 2012-06-04 21:34:28 UTC
(In reply to comment #11)
> Thanks for the clarification on the compilation of the Docky utility.
> 
> 1. My comment above was for the compilation of the dockmanager, which seems
> to be a separate build to Docky.
> 
> The gacutil command as identified works with F17 but not F16. The following
> occurs on Fedora 16. [ Docky has been built successfully and is working, yet
> I get the following on F16 as root:
> 
> #ls /usr/lib64/mono/notify-sharp/notify-sharp.dll
>    /usr/lib64/mono/notify-sharp/notify-sharp.dll
> 
> # gacutil -i /usr/lib64/mono/notify-sharp/notify-sharp.dll
> Failure adding assembly /usr/lib64/mono/notify-sharp/notify-sharp.dll to the
> cache: The file specified is not a valid assembly.

This bug is for F17 - if you're having problems with F16 or with dockmanager, open up a separate bug for it instead of commenting on it here.  None of my comments or suggestions are for any other version of Fedora except fresh installs of F17 on which docky isn't running correctly.

Comment 13 Christian Krause 2012-06-04 23:30:54 UTC
(In reply to comment #10)
> I looked at it again today and the compiler problem was with the
> 'notify-sharp.dll' assembly not being in the GAC.  Docky would compile just
> fine if I removed the <dllmap> entry and removed the gnome-desktop package,
> but the compiler error would re-occur if I removed 'notify-sharp' from the
> GAC (using 'sudo gacutil -u notify-sharp').  As soon as I re-cached
> notify-sharp ('sudo gacutil -i
> /usr/lib64/mono/notify-sharp/notify-sharp.dll'), the compilation would work.

I can confirm that this is a bug in the notify-sharp package. notify-sharp.dll is not correctly installed in the GAC (the GAC is now located in /usr/lib/mono even for the x86_64 architecture). I will provide a new package within the next days.

Comment 14 Fedora Update System 2012-06-10 22:12:51 UTC
ndesk-dbus-0.6.1a-11.fc17,ndesk-dbus-glib-0.4.1-12.fc17,notify-sharp-0.4.0-0.18.20100411svn.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/ndesk-dbus-0.6.1a-11.fc17,ndesk-dbus-glib-0.4.1-12.fc17,notify-sharp-0.4.0-0.18.20100411svn.fc17

Comment 15 Fedora Update System 2012-06-12 00:26:15 UTC
Package ndesk-dbus-0.6.1a-11.fc17, ndesk-dbus-glib-0.4.1-12.fc17, notify-sharp-0.4.0-0.18.20100411svn.fc17:
* should fix your issue,
* was pushed to the Fedora 17 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing ndesk-dbus-0.6.1a-11.fc17 ndesk-dbus-glib-0.4.1-12.fc17 notify-sharp-0.4.0-0.18.20100411svn.fc17'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-9251/ndesk-dbus-0.6.1a-11.fc17,ndesk-dbus-glib-0.4.1-12.fc17,notify-sharp-0.4.0-0.18.20100411svn.fc17
then log in and leave karma (feedback).

Comment 16 Chris Plummer 2012-06-14 18:22:05 UTC
If I open docky as root now, I get this:

[root@cplummer-dl ~]# docky
[Info  14:21:30.503] Docky version: 2.0.12 Release
[Info  14:21:30.529] Kernel version: 3.4.0.1
[Info  14:21:30.530] CLR version: 2.0.50727.1433

Unhandled Exception: System.Exception: Unable to open the session message bus. ---> System.ArgumentNullException: Argument cannot be null.
Parameter name: address
  at NDesk.DBus.Bus.Open (System.String address) [0x00000] in <filename unknown>:0 
  at NDesk.DBus.Bus.get_Session () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at NDesk.DBus.Bus.get_Session () [0x00000] in <filename unknown>:0 
  at NDesk.DBus.BusG.Init () [0x00000] in <filename unknown>:0 
  at Docky.Docky.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.Exception: Unable to open the session message bus. ---> System.ArgumentNullException: Argument cannot be null.
Parameter name: address
  at NDesk.DBus.Bus.Open (System.String address) [0x00000] in <filename unknown>:0 
  at NDesk.DBus.Bus.get_Session () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at NDesk.DBus.Bus.get_Session () [0x00000] in <filename unknown>:0 
  at NDesk.DBus.BusG.Init () [0x00000] in <filename unknown>:0 
  at Docky.Docky.Main (System.String[] args) [0x00000] in <filename unknown>:0

If I open it as my local user, cplummer, then I get it to open, but it still fails on settings (right click the docky icon, then click 'Settings') because gnome-desktop is not installed.  Please make gnome-desktop a dependency of the docky package!

Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.TypeInitializationException: An exception was thrown by the type initializer for Docky.ConfigurationWindow ---> System.DllNotFoundException: libgnome-desktop-2.so.17
  at (wrapper managed-to-native) Gnome.DesktopItem:gnome_desktop_item_new_from_file (intptr,int,intptr&)
  at Gnome.DesktopItem.NewFromFile (System.String file, DesktopItemLoadFlags flags) [0x00000] in <filename unknown>:0 
  at Docky.ConfigurationWindow.get_AutoStart () [0x00000] in <filename unknown>:0 
  at Docky.ConfigurationWindow..ctor () [0x00000] in <filename unknown>:0 
  at Docky.ConfigurationWindow..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at Docky.Items.DockyItem.<OnGetMenuItems>m__6E (System.Object o, System.EventArgs a) [0x00000] in <filename unknown>:0 
  at Docky.Menus.MenuItem.SendClick () [0x00000] in <filename unknown>:0 
  at Docky.Menus.MenuItemWidget.OnButtonReleaseEvent (Gdk.EventButton evnt) [0x00000] in <filename unknown>:0 
  at Gtk.Widget.buttonreleaseevent_cb (IntPtr widget, IntPtr evnt) [0x00000] in <filename unknown>:0 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at Gtk.Widget.buttonreleaseevent_cb(IntPtr widget, IntPtr evnt)
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at Docky.Docky.Main(System.String[] args)
Cairo.Context: called from finalization thread, programmer is missing a call to Dispose

Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for Docky.ConfigurationWindow ---> System.DllNotFoundException: libgnome-desktop-2.so.17
  at (wrapper managed-to-native) Gnome.DesktopItem:gnome_desktop_item_new_from_file (intptr,int,intptr&)
  at Gnome.DesktopItem.NewFromFile (System.String file, DesktopItemLoadFlags flags) [0x00000] in <filename unknown>:0 
  at Docky.ConfigurationWindow.get_AutoStart () [0x00000] in <filename unknown>:0 
  at Docky.ConfigurationWindow..ctor () [0x00000] in <filename unknown>:0 
  at Docky.ConfigurationWindow..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at Docky.Items.DockyItem.<OnGetMenuItems>m__6E (System.Object o, System.EventArgs a) [0x00000] in <filename unknown>:0 
  at Docky.Menus.MenuItem.SendClick () [0x00000] in <filename unknown>:0 
  at Docky.Menus.MenuItemWidget.OnButtonReleaseEvent (Gdk.EventButton evnt) [0x00000] in <filename unknown>:0 
  at Gtk.Widget.buttonreleaseevent_cb (IntPtr widget, IntPtr evnt) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for Docky.ConfigurationWindow ---> System.DllNotFoundException: libgnome-desktop-2.so.17
  at (wrapper managed-to-native) Gnome.DesktopItem:gnome_desktop_item_new_from_file (intptr,int,intptr&)
  at Gnome.DesktopItem.NewFromFile (System.String file, DesktopItemLoadFlags flags) [0x00000] in <filename unknown>:0 
  at Docky.ConfigurationWindow.get_AutoStart () [0x00000] in <filename unknown>:0 
  at Docky.ConfigurationWindow..ctor () [0x00000] in <filename unknown>:0 
  at Docky.ConfigurationWindow..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at Docky.Items.DockyItem.<OnGetMenuItems>m__6E (System.Object o, System.EventArgs a) [0x00000] in <filename unknown>:0 
  at Docky.Menus.MenuItem.SendClick () [0x00000] in <filename unknown>:0 
  at Docky.Menus.MenuItemWidget.OnButtonReleaseEvent (Gdk.EventButton evnt) [0x00000] in <filename unknown>:0 
  at Gtk.Widget.buttonreleaseevent_cb (IntPtr widget, IntPtr evnt) [0x00000] in <filename unknown>:0

Comment 17 markm 2012-06-15 10:50:38 UTC
(In reply to comment #16)
> If I open docky as root now, I get this:
> 
> [root@cplummer-dl ~]# docky
> [Info  14:21:30.503] Docky version: 2.0.12 Release
> [Info  14:21:30.529] Kernel version: 3.4.0.1
> [Info  14:21:30.530] CLR version: 2.0.50727.1433
> 
> Unhandled Exception: System.Exception: Unable to open the session message
> bus. ---> System.ArgumentNullException: Argument cannot be null.
> ...

I get the same as root, but as user, docky starts without any issues.

Comment 18 Fedora Update System 2012-06-19 15:06:13 UTC
ndesk-dbus-0.6.1a-11.fc17, ndesk-dbus-glib-0.4.1-12.fc17, notify-sharp-0.4.0-0.18.20100411svn.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.