Released v0.15.0.5

Posted in Release on November 9th, 2011 by Adam Plumb – 42 Comments

hi all, thanks go to rkrug, basil2, and macavity for helping me figure
out what why we were seeing seg faults in nautilus.  The problem seems
to affect people with python-gtkspell installed.  That is a static
module that uses static gtk as a dependency, and when it tried to
import gtk it would create a seg fault.  Unfortunately, there doesn’t
seem to be dynamic bindings for gtk spell module so I’ve disabled it
for Nautilus 3 users.  This update should also fix the issue where it
would report that it couldn’t load certain svg or svgz files.

The new tarball (hopefully the last for a while) is up now on our
download section.

RabbitVCS v0.15.0.4 released, Ubuntu tarball installation info

Posted in Release, Status Update on November 9th, 2011 by Adam Plumb – 3 Comments

hi all, so I’ve made yet another packaging related release with v0.15.0.4 which fixes some minor issues.  I also found out that if you are installing from the tarball on Ubuntu, then you need to add an argument to the setup.py call, otherwise it will ignore the system prefix and use /usr/local no matter what, which will cause many problems.

Ubuntu users should use the following command to install:

$ sudo python setup.py install –install-layout=deb

All other users should do:

$ sudo python setup.py install

Thanks,Adam

A word on that pesky segmentation fault issue…

Posted in Miscellaneous, Status Update on November 8th, 2011 by Adam Plumb – 12 Comments

hi all, I just wanted to explain why so many of you are getting segmentation faults when you try to run the nautilus 3 client.

The pygtk world used to be quite simple and nice, with good documentation and well known best practices.  These were “static” gtk bindings that someone had to set up by hand (including me for nautilus-python).  These bindings were a pain in the butt to maintain over time but they worked pretty well and were predictable (good for coding against them).  However, a couple years ago the pygtk maintainers decided to abandon these bindings and start from scratch with “dynamic” bindings that would execute the original C code of the gtk library, which would have the effect of dramatically reducing the amount of hand-written binding code the pygtk developers would have to maintain.  These new dynamic bindings have been released for a while but are still pretty new to the world, but for the most part they work pretty well.  As you might be able to tell, the original Nautilus extension used the static pygtk bindings to run, and the new Nautilus 3 extension uses the new dynamic bindings to run.
Running Nautilus 2 with the static bindings works great, and running Nautilus 3 with the dynamic bindings works great as well, but problems start to occur when you try to run Nautilus (2 or 3) with both the static and dynamic bindings at the same time (this is possible).  Unfortunately this is what is happening for many of you right now.  Some extensions are written with the expectation that they can run with a mix of static and dynamic bindings, and if Nautilus 3 loads extensions that try to use the static and dynamic versions of a set of bindings at the same time, it will crash.

I’m not entirely sure what the solution to this is, though it will become less of a problem over time, as people switch completely over to the dynamic bindings.  However, for now, things will be a bit messy and you will have to decide which extensions you want to run.  Right now, the Nautilus 3 RabbitVCS extension uses dynamic bindings.  If you see the following error:

** (nautilus:2259): DEBUG: Syncdaemon not running, waiting for it to start in NameOwnerChanged
/usr/lib/python2.7/dist-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0′ failed
import gobject._gobject
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: specified class size for type `PyGtkGenericCellRenderer’ is smaller than the parent type’s `GtkCellRenderer’ class size
from gtk import _gtk
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: g_type_get_qdata: assertion `node != NULL’ failed
from gtk import _gtk
Segmentation fault

Then it means you have another extension running that is trying to use the static bindings.  If you see this error (check in ~/.config/rabbitvcs/RabbitVCS.log) and your Nautilus isn’t able to run, first disable all nautilus-python extensions, then try to run RabbitVCS again.  Then one-by-one, enable your other extensions until Nautilus crashes again.  You should then report the issue either to myself or to the maintainer of said extension.

Hopefully this will resolve itself within a year or so, but until then it will be a somewhat bumpy ride.

Adam

Release announcement for RabbitVCS v0.15!

Posted in Release on November 4th, 2011 by Adam Plumb – 36 Comments

Good news!  RabbitVCS v0.15 is out!

This release is mainly focused on adding Nautilus 3.0 support with the
new nautilus-3.0 client extension.  However, there are quite a few bug
fixes and changes in there as well, including migrating from Glade to
GtkBuilder for dialogs.

Download RabbitVCS v0.15 at:
http://wiki.rabbitvcs.org/wiki/download

Homepage:
http://www.rabbitvcs.org

Note: We should have new packages in our PPA within a few days.

Issue Tracker:
http://code.google.com/p/rabbitvcs/issues/list

A big thanks and a great job to everyone on the team and everyone who
contributed to this release!